更新记录

1.0(2022-12-19)


平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 11.0 armeabi-v7a:支持,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
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原生插件配置”->”云端插件“列表中删除该插件重新选择


### 原生插件通用使用流程:


  • 1 :购买插件,选择该插件绑定的项目.

  • 2 :在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。

  • 3 :根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。

  • 4 :打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。

  • 5 :开发完毕后正式云打包。

  • 付费原生插件目前不支持离线打包。Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android

    • *

      高德持续定位插件

    • *

      使用须知:

    • *

本插件只支持Android版应用,购买前请仔细阅读本文档,测试请使用自定义基座 看是否符合自己需求。

  1. 需要使用uniapp官方工程创建模板,在manifest.json - APP模块配置 - 定位 中,勾选高德定位,并且配置自己APP对应的安卓的高德key
  2. demo中仅是按钮触发单次定位,要持续获取定位反复调用对应的定位方法即可获取

引入插件方法:

var gaode = uni.requireNativePlugin("lyy-gaode");


示例代码

<template>
    <div>
        <button type="primary" @click="locationpermission">打开定位权限</button>

        <button type="primary" @click="startlocation">开启定位</button>
        <button type="primary" @click="stoplocation">关闭定位</button>
        <button type="primary" @click="golocation">跳转原生高德定位界面</button>

        <view style="padding: 15px 30px;">开始数据:{{ msg }}</view>
        <view style="padding: 15px 30px;">关闭数据:{{ msg1 }}</view>

    </div>
</template>

<script>
    // 获取 module
    var gaode = uni.requireNativePlugin("lyy-gaode");
    export default {
        data(){

            return{
                msg: "",
                msg1: "",
            }

        },
        methods: {
            startlocation(){
                // var ret=gaode.startlocation()
                // this.msg=JSON.stringify(ret)
                gaode.startlocation({},(res) => {
                console.log(res)
                this.msg=JSON.stringify(res)

                });

            },

            stoplocation(){
                 gaode.stoplocation({},(res) => {
                      console.log(res);
                      this.msg1 = JSON.stringify(res)
                    })

            },
            golocation(){
                 gaode.getlocation();
            },
            async locationpermission(){
                        plus.android.requestPermissions(
                            ['android.permission.ACCESS_FINE_LOCATION'], 
                            function(resultObj) {
                                var result = 0;
                                for (var i = 0; i < resultObj.granted.length; i++) {
                                    var grantedPermission = resultObj.granted[i];
                                    console.log('已获取的权限:' + grantedPermission);
                                    result = 1
                                }
                                for (var i = 0; i < resultObj.deniedPresent.length; i++) {
                                    var deniedPresentPermission = resultObj.deniedPresent[i];
                                    console.log('拒绝本次申请的权限:' + deniedPresentPermission);
                                    result = 0
                                }
                                for (var i = 0; i < resultObj.deniedAlways.length; i++) {
                                    var deniedAlwaysPermission = resultObj.deniedAlways[i];
                                    console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
                                    result = -1
                                }
                            // 若所需权限被拒绝,则打开APP设置界面,可以在APP设置界面打开相应权限
                            if (result != 1) {
                              //如果用户第一次拒绝后,跳转到对应应用的权限页面
                               var Intent = plus.android.importClass("android.content.Intent");
                               var Settings = plus.android.importClass("android.provider.Settings");
                               var Uri = plus.android.importClass("android.net.Uri");
                               var mainActivity = plus.android.runtimeMainActivity();
                               var intent = new Intent();
                               intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
                               var uri = Uri.fromParts("package", mainActivity.getPackageName(), null);
                               intent.setData(uri);
                               mainActivity.startActivity(intent);
                            }
                            }

                        );

            }

        }
    }
</script>
<style>
</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

<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.CHANGE_CONFIGURATION" tools:ignore="ProtectedPermissions" /> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WAKE_LOCK"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <!-- 用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> <!-- 用于提高GPS定位速度 --> <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.WRITE_SETTINGS" tools:ignore="ProtectedPermissions" /> <!--如果设置了target >= 28 如果需要启动后台定位则必须声明这个权限--> <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> <!--如果您的应用需要后台定位权限,且有可能运行在Android Q设备上,并且设置了target>28,必须增加这个权限声明--> <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION"/> <!--如果设置忽略电池优化,需要增加这个权限--> <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS"/> <!-- 如何在锁屏状态乃至系统进入休眠后,仍然保持系统的网络状态以及通过程序唤醒手机呢?答案就是Android中的WakeLock机制。--> <uses-permission android:name="android.permission.DEVICE_POWER" tools:ignore="ProtectedPermissions" /> <!--定时唤醒CPU--> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件本身不采集任何数据 插件依赖的第三方高德定位SDK,参考其官方网站 https://lbs.amap.com 插件定位功能使用高德定位SDK,开始定位时需要获取设备位置信息信息用于定位接口实现,其隐私协议参考 https://lbs.amap.com/pages/privacy

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

作者未提供license.md

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问