更新记录
1.0.0(2023-12-27)
*新账号发布
平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:11 - 17 |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
特别提醒
- 购买本插件前,请先试用,请先试用,请先试用,自测确认满足需求之后再行购买。虚拟物品一旦购买之后无法退款;
- 如有使用上的疑问、bug,可以QQ(381996687)联系作者;
- 作者可承接各种插件定制,价格美丽有意向可加q详谈;
- 请在合法范围内使用,若使用本插件做非法开发,本方概不负责;
- 请仔细阅读文档结合示例demo测试有问题加q联系作者;
插件功能介绍
-
定位、连续定位、后台定位(Android需要使用保活定位)
-
坐标转换
-
保活
Android后台采集或保活设置
-
通知管理允许通知,允许自启动;
-
耗电保护允许后台运行;
-
电池设置中关闭智能耗电保护、省电模式、应用速冻等。
注意事项:
- 本插件使用需要勾选Geolocation模块。填入申请的百度定位key。
- iOS后台采集需要在manifest.json -> App常用其它设置 中配置定位的后台运行能力;
- Android手机型号太多,各品牌对手机的限制不尽相同,需要保活而进行的设置也不一样。随着Android系统的更新迭代,保活的难度也在不断加大。最有效的保活方式还是联系厂家添加白名单以实现进程保活。
插件使用
定位
定位需要注意的地方:
- iOS后台定位定位间隔不能设置太大,应小于12秒
-
3.Android后台定位,请使用保活定位。
- 引入插件
const bdLocationModule = uni.requireNativePlugin('YT-BDLocation');
- 设置定位坐标类型支持设置(bd09ll、gcj02、bd09、wgs84(wgs84仅iOS支持))默认bd09ll,设置定位经纬度需在定位前设置。需要修改坐标类型需重新调用下面方法。
bdLocationModule.setLocationCoorType("gcj02")
- 单次定位
/** * reGeocode:是否带有逆地理信息(获取逆地理信息需要联网) */ bdLocationModule.startOnceLocationWithReGeocode({ reGeocode: true, //定位是否返回逆地理信息 默认不返回 reGeocodeTimeout: 10, //获取地址信息超时 locationTimeout: 10 //设置位置获取超时时间 默认10秒 // openGps:false }, res => { // res ={"province":"浙江省","locationDescribe":"在xxxxx附近","street":"xx路","countryCode":"0","cityCode":"179","town":"xx街道","lat":30.44676187736189,"code":"200","city":"杭州市","district":"xx区","lng":120.26363708577145,"streetNumber":"98","country":"中国","msg":"定位成功"} if (res.code == 200) { console.log(res) } });
- 连续定位
bdLocationModule.startUpdatingLocation({
reGeocode: true, //定位是否返回逆地理信息 默认不返回
isAllow: true, //开启后台定位,默认不开启(Android后台定位需要使用保活定位,按官方设置后台定位没有效果)
//连续定位间隔 默认10秒 (iOS sdk没有设置连续定位间隔的api,插件内部启动定时器来控制开始结束定位。所以这里设置locationInterval大于10时会影响后台定位)
locationInterval: 10,//定位间隔
locationTimeout: 10, //设置位置获取超时时间 默认10秒
reGeocodeTimeout: 10, //设置获取地址信息超时时间 默认10秒
openGps:true
}, res => {
// res ={"province":"浙江省","locationDescribe":"在xxx附近","street":"xx路","countryCode":"0","cityCode":"179","town":"xx街道","lat":30.44676187736189,"code":"200","city":"杭州市","district":"临平区","lng":120.26363708577145,"streetNumber":"98","country":"中国","msg":"定位成功"}
this.localCount++;
// res.loc_type定位类型 --- 61 gps定位成功 66:离线定位成功 161:网络定位成功---仅Android有效
//altitude--高度--仅Android有效--需设置openGps:true
//speed--速度仅Android有效 --需设置openGps:true
uni.showToast({
title: "定位成功次数:" + this.localCount,
icon: 'none',
duration: 1500
})
console.log(res)
})
- 取消连续定位
bdLocationModule.stopUpdatingLocation();
- 保活定位(Android独有)
bdLocationModule.keepAlive({
locationInterval: 5 //连续定位间隔--默认10秒
}, res => {
this.localCount++;
uni.showToast({
title: "定位成功次数:" + this.localCount,
icon: 'none',
duration: 1500
})
})
经纬度转换
经纬度转换悉知:iOS端其他坐标系转bd09ll是sdk自带的算法,其余转换是作者自己网上找的算法。
- 引入插件
const bdLocationModule = uni.requireNativePlugin('YT-BDLocation');
<!--gcj02ToBd09-->
let result = bdLocationModule.gcj02ToBd09(30.440541199534238, 120.25721120983569);
console.log(result)
<!--bd09ToGcj02-->
let result = bdLocationModule.bd09ToGcj02(30.44676187736189, 120.26363708577145);
<!--bd09ToWgs84-->
let result = bdLocationModule.bd09ToWgs84(30.44676187736189, 120.26363708577145);
<!--gcj02ToWgs84-->
let result = bdLocationModule.gcj02ToWgs84(30.44676187736189, 120.26363708577145);
<!--wgs84ToBd09 ios有效-->
let result = bdLocationModule.wgs84ToBd09(30.44676187736189, 120.26363708577145);
<!--wgs84ToGcj02 Android有效-->
let result = bdLocationModule.wgs84ToGcj02(30.44676187736189, 120.26363708577145);