@capgo/배경 위치 추적 사용
iOS 및 Android에서 Capacitor 앱에 대한 정확한 배경 위치 추적 및 네이티브 지오펜싱을 제공합니다. 위치 업데이트 스트리밍, 원형 지역 모니터링 및 자바스크립트 또는 백엔드에 지오펜스 입/출 전환을 전달하는 데 사용하세요.
설치
bun add @capgo/background-geolocation
bunx cap sync
이 플러그인이 제공하는 것
start- 정확한 전면 또는 배경 위치 업데이트 스트리밍.stop- 활성 위치 추적 중지.openSettings- 사용자가 위치 권한을 수정해야 할 때 native 설정 열기.setPlannedRoute- 사용자가 계획된 경로를 떠날 때 native 사운드 재생.setupGeofencing- 네이티브 지오펜스 기본값 구성 및 선택적 전환 웹후크 전달.addGeofence- iOS 또는 Android 원형 지오펜스 지역 모니터링.removeGeofence/removeAllGeofences- 등록된 지역 중 하나 또는 모든 지역을 중지.getMonitoredGeofences- 위치를 모니터링하는 지역 식별자 목록을 표시합니다.geofenceTransition- listener - 앱이 활성화된 동안 입장과 퇴장 이벤트를 수신합니다.geofenceError- listener - 네이티브 모니터링 오류를 전환 이벤트와 분리하여 처리합니다.
예시 사용
start
장치의 위치 변경을 감지하기 위해 이 메서드를 호출하세요. Promise가 반환되어 호출이 완료되었음을 나타내며, callback은 새로운 위치가 사용 가능할 때 또는 이 메서드를 호출할 때 오류가 발생한 경우 호출됩니다. Promise 거부에 의존하지 마세요.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.start(
{
backgroundMessage: "App is using your location in the background",
backgroundTitle: "Location Service",
requestPermissions: true,
stale: false,
distanceFilter: 10
},
(location, error) => {
if (error) {
console.error('Location error:', error);
return;
}
if (location) {
console.log('New location:', location.latitude, location.longitude);
}
}
);
stop
위치 업데이트를 중지합니다.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.stop();
openSettings
장치의 위치 설정 페이지를 열어줍니다. 사용자에게 위치 서비스를 활성화하거나 권한을 조정하도록 안내할 때 유용합니다.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
// Direct user to location settings
await BackgroundGeolocation.openSettings();
setPlannedRoute
사용자가 계획된 경로에서 벗어났을 때 사운드 파일을 재생합니다. 네이티브에서만 사용할 수 있으며, 배경에서도 재생할 수 있습니다.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.setPlannedRoute({
soundFile: "notification.mp3",
route: [[-74.0060, 40.7128], [-118.2437, 34.0522]]
});
네이티브 지오펜싱
네이티브 iOS 및 Android 지오펜싱을 사용하여 매장, 작업장, 배송 구역, 캠퍼스, 또는 체크인 지역을 모니터링합니다. HTTP 또는 HTTPS url 네이티브 code를 사용하여 WebView가 중단된 상태에서 전환 패이로드를 POST할 수 있도록 허용합니다.
import { BackgroundGeolocation } from '@capgo/background-geolocation';
await BackgroundGeolocation.setupGeofencing({
url: 'https://api.example.com/geofences',
notifyOnEntry: true,
notifyOnExit: true,
payload: { userId: '123' },
});
await BackgroundGeolocation.addGeofence({
identifier: 'warehouse',
latitude: 40.7128,
longitude: -74.006,
radius: 200,
});
const listener = await BackgroundGeolocation.addListener(
'geofenceTransition',
(event) => console.log(event.identifier, event.transition),
);
const errorListener = await BackgroundGeolocation.addListener(
'geofenceError',
(event) => console.error(event.identifier, event.message),
);
await BackgroundGeolocation.removeGeofence({ identifier: 'warehouse' });
await listener.remove();
await errorListener.remove();
Android에서 ACCESS_BACKGROUND_LOCATION 앱 매니페스트에만 백그라운드 지오펜싱이 필요할 때 추가하세요:
<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
Full Reference
- GitHub: https://github.com/Cap-go/capacitor-background-geolocation/
- 문서: /docs/plugins/background-geolocation/
Using @capgo/background-geolocation에서 계속하세요.
이 기능을 사용 중이라면 Using @capgo/background-geolocation 자연스러운 플러그인 작업을 계획하려면 @__CAPGO_KEEP_0__/background-geolocation과 연결하세요. @capgo/background-geolocation의 implementation detail을 참조하세요. for the implementation detail in @capgo/background-geolocation, @__CAPGO_KEEP_0__/background-geolocation Capacitor Background Geolocation 플러그인 Capgo Plugin Directory for the product workflow in Capgo Plugin Directory, Capacitor Plugins by Capgo for the implementation detail in Capacitor Plugins by Capgo, and 플러그인 추가 또는 업데이트 Capacitor Background Geolocation 플러그인 디렉토리에서 제품 워크플로우를 위해, 그리고 플러그인 추가 또는 업데이트