2.0.3 • Published 11 months ago
cordova-plugin-flyff-location-baidu v2.0.3
百度地图定位SDK, Android SDK(v7.2),iOS SDK(v2.0.7)
版本限制
1.x
只支持cordova
<engine name="cordova-ios" version="5.0.0 - 6.0.0" />
<engine name="cordova-android" version="5.0.0 - 7.0.0" />
定位返回时,不根据error判断,而是根据是否有返回location
2.x
支持更高版本的cordova
,以及兼容capacitor
<engine name="cordova-ios" version="6.0.0 - 7.0.0" />
<engine name="cordova-android" version="7.0.0 - 12.0.0" />
定位返回时,不根据error判断,而是根据是否有返回location
使用
申请Android及IOS版密钥
每一个AndroidManifest.xml 中的package属性 对应一个AK,不可混用
每一个Bundle Identifier 对应一个AK,不可混用
安装插件
cordova plugin add cordova-plugin-flyff-location-baidu --variable ANDROID_KEY="<API_KEY_ANDROID>" --variable IOS_KEY="<API_KEY_IOS>"
# 此处的API_KEY_XX来自于第一步,直接替换<API_KEY_XX>,也可以最后跟 --save 参数,将插件信息保存到config.xml中
# 如果只需要Android端或者IOS端,可以只填写一个相应的AK,但是都不填肯定不行
示例
// 进行单次定位
baidumap_location.getCurrentPosition(function (result) {
console.log(JSON.stringify(result, null, 4));
}, function (error) {
});
// 开启持续定位,时间是1000ms,距离是20m
baidumap_location.startUpdatingLocation(function (result) {
console.log(JSON.stringify(result, null, 4));
}, function (error) {
},1000,20);
// 关闭持续定位
baidumap_location.stopLocationUpdatingLocation(function (result) {
console.log(JSON.stringify(result, null, 4));
}, function (error) {});
来源
本插件基于cordova-plugin-sinoservices-location-baidu修改
1.x调整
Android
service添加 android:exported
隐式调用属性
<service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote" android:exported="true">
<intent-filter>
<action android:name="com.baidu.location.service_v2.2"/>
</intent-filter>
</service>
iOS
设置隐私声明
百度地图低位SDK v2.0.2版本起, 必须先调用隐私合规接口setAgreePrivacy
;
补充错误回调
之前定位出错没有返回错误信息
2.x调整
Android
hook文件目录调整
支持cordova-android@7.0
之后的安卓项目目录;
R包声明
BaiduMapLocation.java
使用的R包声明改为capacitor.android.plugins.R
, 兼容了capacitor。而cordova平台下会通过hook文件修改为当前包名。