For the complete documentation index, see llms.txt. This page is also available as Markdown.

Device.subscribeLocation

함수형 API startUpdateLocation으로도 같은 기능을 쓸 수 있어요.

기능 설명

디바이스의 위치 변경을 계속 감지하고, 위치가 바뀔 때마다 onEvent 콜백을 실행해요. 반환하는 cleanup 함수로 구독을 해제해야 해요. timeInterval은 시스템 영향으로 지정한 값보다 길어질 수 있어요.

위치 권한이 없으면 onError 콜백에 StartUpdateLocationPermissionError(GetCurrentLocationPermissionError와 동일한 클래스)가 전달돼요. Device.subscribeLocation.getPermission() / Device.subscribeLocation.openPermissionDialog()로 권한을 확인·요청할 수 있어요.

타입

Device.subscribeLocation(params: StartUpdateLocationEventParams): () => void;

Params

type StartUpdateLocationEventParams = {
  onEvent: (location: Location) => void;
  onError: (error: unknown) => void;
  options: {
    accuracy: Accuracy;
    /** 위치 업데이트 최소 주기(ms)예요. */
    timeInterval: number;
    /** 위치 변경을 감지할 거리(m)예요. */
    distanceInterval: number;
  };
};

Response

구독을 해제하는 cleanup 함수(() => void)를 반환해요.

에러

에러는 onError 콜백에 클래스 인스턴스로 전달돼요 — error instanceof StartUpdateLocationPermissionError로 식별해요. 클래스는 @apps-in-toss/web-framework에서 import할 수 있어요.

에러 클래스
설명

StartUpdateLocationPermissionError

위치 업데이트 권한이 거부된 경우예요. Device.subscribeLocation.openPermissionDialog()로 다시 요청할 수 있어요.

예시 코드

도움이 되었나요?