注册位置监听
注册监听位置更改,在注销之前会多次触发回调,并返回位置信息
权限配置
ios配置
Info.plist
<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期间访问位置</string>
Android配置
android/app/src/main/AndroidManifest.xml
<!-- 获取位置权限 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
Installation
yarn add --dev @dfeidao/fd-am000042
param
属性 | 描述 |
---|---|
fd | |
success_event_name | 监听位置所触发的事件,并返回位置信息 |
result
number
返回值是注册监听的id,可以通过am43原子操作进行注销监听
result-error
错误信息| ----|---- 没有开启位置服务 | 该设备无GPS功能 | 没有配置权限 | 其他 |
Example
import am42 from '@dfeidao/am-000042';
import am65 from '@dfeidao/am-000065';
try {
const ram42 = await am42(fd, 'a003');
am65(fd, 'watch_id', ram42);
} catch (error) {
// 错误信息
return error.message;
}
a003事件
import render from '@dfeidao/atom-mobile/render/render';
import am0 from '@dfeidao/fd-am000000';
export default function a003(fd: am0, date: unknown) {
// 设置存储全局变量
const data = date as {
coords: {
latitude: number
longitude: number
}
};
console.log(data.coords.latitude, data.coords.longitude);
render(fd, {
latitude: data.coords.latitude,
longitude: data.coords.longitude
});
}