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中导入。
错误类
说明
StartUpdateLocationPermissionError
表示位置更新权限被拒绝。 Device.subscribeLocation.openPermissionDialog()可以重新请求。
示例代码
这有帮助吗?