更新记录
1.2.7(2024-03-02)
修复问题
1.2.4(2024-02-23)
增加 iOS 端隐私协议调用功能,避免 iOS crash。老版本没问题因为老版本 uniapp 用的是老的高德 sdk,无需调用隐私协议
1.2.3(2022-10-13)
iOS返回数据完善
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:5.0 - 14.0 | armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 | 适用版本区间:9 - 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原生插件配置”->”云端插件“列表中删除该插件重新选择
PowPlugin持续定位插件
- 需要使用uniapp官方工程创建模板,在
manifest.json
-APP模块配置
-定位
中,勾选高德定位,并且配置自己APP对应的安卓和iOS高德key - 不包含单次定位接口,请使用uniapp官方接口
- 高德要求,一定要在定位之前调用以下两个高德隐私政策接口:
PowModule.updatePrivacyShow({},()=>{})
PowModule.updatePrivacyAgree({},()=>{})
-
调用方法如下:
<script> const PowModule = uni.requireNativePlugin("Pow-Plugin") export default { methods: { demoPrivacyThings(){ console.log(`pow-before-privacyThings`) PowModule.updatePrivacyShow({},()=>{}) PowModule.updatePrivacyAgree({},()=>{}) }, demoStartLocation(){ console.log(`pow-before-location`) // 可以多次调用,regeo和interval参数以最后一次调用时为准 PowModule.startUpdatingLocation({'regeo':true, 'interval':1000, 'enable_bg':true},(ret)=>{ if(ret.errCode != null && ret.errCode != 0 || ret.longitude == null){ // 用户首次打开未授权,或者用户拒绝授权,的情况下,回调都会走到这里,用户点击授权弹窗允许权限之后,会返回正确位置信息,用户授权后无需重复调用`startUpdatingLocation` console.log(`pow-locationRes- 缺少位置权限`) }else{ // 用户授权后正常返回 console.log(`pow-locationRes-ret:${JSON.stringify(ret)}`) } }) }, demoStopLocation(){ console.log(`pow-stop-location`) PowModule.stopUpdatingLocation() } } } </script>
startLocation
接口支持参数:regeo
是否需要逆地理信息,默认false
interval
持续定位间隔,单位ms,安卓最小 1000 ,iOS无限制enable_bg
是否开启后台定位
- 安卓
后台
定位需要- 在uniapp项目根目录添加
AndroidManifest.xml
,在application
标签下配置service
标签com.amap.api.location.APSService
- 在uniapp权限设置里面添加
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
和其它高德指定的uses-permission
- 高德文档:https://lbs.amap.com/api/android-location-sdk/gettingstarted#t4和https://lbs.amap.com/api/android-location-sdk/guide/utilities/permision_9
- uniapp打包安卓配置manifest方法: https://uniapp.dcloud.net.cn/tutorial/app-nativeresource-android.html#permissions
- 在uniapp项目根目录添加
完整的AndroidManifest.xml
示例如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
package="app的包名">
<application>
<service android:name="com.amap.api.location.APSService" />
</application>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<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_BACKGROUND_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
</manifest>
-
不少朋友咨询怎么不生效,后来参考如下示例的manifest配置就好了:
{ "name" : "airport-on-uni-pad", "appid" : "__UNI__F07C1", "description" : "", "versionName" : "1.0.0", "versionCode" : 101, "transformPx" : false, /* 5+App特有相关 */ "app-plus" : { "usingComponents" : true, "nvueStyleCompiler" : "uni-app", "compilerVersion" : 3, "splashscreen" : { "alwaysShowBeforeRender" : true, "waiting" : true, "autoclose" : true, "delay" : 0 }, /* 模块配置 */ "modules" : { "Geolocation" : {}, "Maps" : {} }, /* 应用发布信息 */ "distribute" : { /* android打包配置 */ "android" : { "permissions" : [ "<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>", "<uses-permission android:name=\"android.permission.VIBRATE\"/>", "<uses-permission android:name=\"android.permission.READ_LOGS\"/>", "<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>", "<uses-feature android:name=\"android.hardware.camera.autofocus\"/>", "<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>", "<uses-permission android:name=\"android.permission.CAMERA\"/>", "<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>", "<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>", "<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>", "<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>", "<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>", "<uses-feature android:name=\"android.hardware.camera\"/>" ] }, /* ios打包配置 */ "ios" : { "privacyDescription" : { "NSLocationWhenInUseUsageDescription" : "111", "NSLocationAlwaysUsageDescription" : "222", "NSLocationAlwaysAndWhenInUseUsageDescription" : "333" }, "dSYMs" : false, "UIBackgroundModes" : "location" }, /* SDK配置 */ "sdkConfigs" : { "geolocation" : { "amap" : { "__platform__" : [ "ios", "android" ], "appkey_ios" : "9428498ddb1d534db3b4c94cfc08dd", "appkey_android" : "d4aeaaf4b921a2d4b4210d91b09170" }, "system" : { "__platform__" : [ "ios", "android" ] } }, "maps" : { "amap" : { "appkey_ios" : "942849d81b1d534db3b4c94cfc08dd", "appkey_android" : "d4ae3ef4b921a2d4b4210d91b09170" } }, "ad" : {} } }, "nativePlugins" : { "Pow-Plugin" : { "__plugin_info__" : { "name" : "¥18.88 高德持续定位插件,支持iOS和安卓", "description" : "持续定位插件,通过vue代码直接调用原生高德持续定位接口,支持iOS和安卓,联系QQ:", "" : "Android,iOS", "url" : "https://ext.dcloud.net.cn/plugin?id=7310", "android_package_name" : "uni.UNI68", "ios_bundle_id" : "com.", "isCloud" : true, "bought" : 1, "pid" : "7310", "parameters" : {} } } } }, /* 快应用特有相关 */ "quickapp" : {}, /* 小程序特有相关 */ "mp-weixin" : { "appid" : "", "setting" : { "urlCheck" : false }, "usingComponents" : true }, "mp-alipay" : { "usingComponents" : true }, "mp-baidu" : { "usingComponents" : true }, "mp-toutiao" : { "usingComponents" : true }, "uniStatistics" : { "enable" : false }, "vueVersion" : "2" }