메인 콘텐츠로 건너뛰기
플러그인으로 돌아가기
@capgo/capacitor-background-geolocation
튜토리얼
github.com/Cap-go에서 github

배경 위치 추적

자연스러운 iOS 및 Android 지오펜싱 및 웹 훅 전환과 함께 정확한 배경 위치 추적

Guide

Background 위치 서비스 튜토리얼

background-geolocation을 사용하여 capgo 앱에서 정확한 배경 위치 서비스와 네이티브 지오펜싱을 구현하세요.

iOS와 Android에서 Capacitor 앱에 정확한 배경 위치 서비스와 네이티브 지오펜싱을 구현하세요. 정확한 위치 업데이트 스트리밍, circular 지역 모니터링, JavaScript 또는 백엔드에 지오펜스 입/퇴 전환을 전달하세요.

설치

bun add @capgo/background-geolocation
bunx cap sync

이 플러그인에 노출되는 항목

  • start - 정확한 전면 또는 배경 위치 업데이트 스트리밍
  • stop - 활성 위치 추적 중지
  • openSettings - 사용자가 위치 권한을 수정해야 할 때 native 설정 열기
  • setPlannedRoute - 사용자가 계획된 경로를 떠날 때 native 사운드 재생
  • setupGeofencing - __CAPGO_KEEP_0__ native geofence 기본값을 설정하고 optional transition webhook 전송을 선택적으로 활성화합니다.
  • addGeofence - iOS 또는 Android의 circular geofence 영역을 모니터링합니다.
  • removeGeofence / removeAllGeofences - 등록된 영역 중 하나 또는 모두를 모니터링 중지합니다.
  • getMonitoredGeofences - 모니터링 중인 영역 식별자 목록을 표시합니다.
  • geofenceTransition listener - 앱이 활성화된 상태에서 입장 및 출장 이벤트를 수신합니다.
  • geofenceError listener - native monitoring 오류를 transition 이벤트와 별도로 처리합니다.

예시 사용

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

사용자가 계획된 경로에서 벗어났을 때 사운드 파일을 재생합니다. 이 메서드는 native에서만 백그라운드에서도 재생할 수 있습니다.

import { BackgroundGeolocation } from '@capgo/background-geolocation';

await BackgroundGeolocation.setPlannedRoute({
  soundFile: "notification.mp3",
  route: [[-74.0060, 40.7128], [-118.2437, 34.0522]]
});

native geofencing

iOS 및 Android 기지국을 사용하여 학교, 공항, 배송 지역, 캠퍼스, 또는 체크인 지역을 모니터링하세요. url code에 HTTP 또는 HTTPS를 추가하여 WebView가 중단된 상태에서 네이티브 code 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 __CAPGO_KEEP_0__ 앱 매니페스트에만 백그라운드 기지국 기능을 사용할 때 추가하세요:

<uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />

전체 참조