更新记录

1.2(2024-04-01)

优化和其他插件的兼容问题

1.1(2024-02-02)

支持自定义权限使用说明(标题、内容)

1.0(2024-01-15)

权限申请插件(权限使用说明) Ba-Permissions

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:4.4 - 14.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原生插件配置”->”云端插件“列表中删除该插件重新选择


权限申请插件(权限使用说明) Ba-Permissions

简介

Ba-Permissions 是一款权限申请插件,支持权限使用说明弹窗,满足市场审核需求。支持自定义权限申请,也支持快速申请定位、相机、媒体、文件、悬浮窗等常见权限。

  • 支持权限使用说明弹窗,满足市场审核需求
  • 支持常见权限便捷申请(定位、相机、媒体、文件、悬浮窗、忽略电池优化等等)
  • 支持自定义权限申请
  • 支持跳转应用详情
  • 支持跳转到应用权限设置页
  • 支持判断一个或多个权限是否全部授予
  • 支持获取没有授予的权限
  • 支持自定义权限使用说明(标题、内容)

有建议和需要,请联系QQ:2579546054

也可关注博客,实时更新最新插件

uniapp 常用原生插件大全


使用方法

script 中引入组件

    const permission = uni.requireNativePlugin('Ba-Permissions')

script 中调用(示例参考,可根据自己业务和调用方法自行修改)

    const permission = uni.requireNativePlugin('Ba-Permissions')
    export default {
        data() {
            return {
                msgList: []
            }
        },
        methods: {
            request() {//自定义申请权限
                let that = this;
                permission.request({
                        permissions: ['android.permission.CAMERA'],
                        //perTitle:"自定义权限说明标题",//可不传,有默认值
                        //perMsg:"自定义权限说明内容"//可不传,有默认值
                    },
                    (res) => {
                        that.showResult(res)
                    });
            },
            isGranted() { //判断一个或多个权限是否全部授予了
                let that = this;
                permission.isGranted({
                        permissions: ['android.permission.CAMERA']
                    },
                    (res) => {
                        that.showResult(res)
                    });
            },
            getDenied() { //获取没有授予的权限
                let that = this;
                permission.getDenied({
                        permissions: ['android.permission.CAMERA', 'android.permission.ACCESS_COARSE_LOCATION',
                            'android.permission.ACCESS_FINE_LOCATION',
                            'android.permission.ACCESS_BACKGROUND_LOCATION'
                        ]
                    },
                    (res) => {
                        that.showResult(res)
                    });
            },
            goPermissionPage() { //跳转到应用权限设置页
                let that = this;
                permission.goPermissionPage({
                        permissions: ['android.permission.CAMERA']
                    },
                    (res) => {
                        that.showResult(res)
                    });
            },
            goAppDetails() {//跳转应用详情
                let that = this;
                permission.goAppDetails(
                    (res) => {
                        that.showResult(res)
                    });
            },
            reqLocation() {//申请位置权限
                let that = this;
                permission.reqLocation(
                    (res) => {
                        that.showResult(res)
                    });
            },
            reqAlertWindow() { //申请悬浮窗权限
                let that = this;
                permission.reqAlertWindow(
                    (res) => {
                        that.showResult(res)
                    });
            },
            showResult(res) {
                console.log(res);
                //this.msgList.unshift(JSON.stringify(res))
                uni.showToast({
                    title: res.msg,
                    icon: "none",
                    duration: 3000
                })
            }
        }
    }

api 列表

方法名 说明
request 自定义权限申请
isGranted 判断一个或多个权限是否全部授予了
permission 获取没有授予的权限
getDenied 跳转到悬浮窗权限页面
goPermissionPage 跳转到应用权限设置页
goAppDetails 跳转应用详情
reqLocation 定位权限
reqLocation2 定位权限(需要后台)
reqAlertWindow 悬浮窗权限
reqManageStorage 申请所有文件读取权限
reqReadMediaLocation 申请读取图片地理信息权限
reqBluetooth 申请蓝牙权限
reqNotification 申请通知权限
reqNotifyPolicy 申请勿扰权限
reqNotifyListener 申请通知栏监听权限
reqIgnoreBattery 申请忽略电池优化权限
reqSensors 传感器
reqRecognition 申请身体活动权限
reqInstallPackages 申请安装包权限
reqUsageStats 申请使用统计权限
reqExactAlarm 申请闹钟提醒权限

request 方法参数(或其他所有权限方法)

传参
属性名 类型 必填 默认值 说明
permissions Array true [] 权限名称清单
perMsg String false 权限使用说明内容,可不传
perTitle String false 权限使用说明标题,可不传
返回
属性名 类型 说明
result String 获取权限状态,"onGranted"成功,"onDenied"失败
allGranted Boolean 是否获取所有权限成功
doNotAskAgain Boolean 被永久拒绝授权,请手动授予权限
msg String 默认提示内容

常见权限清单

    <!--相机-->
    <uses-permission android:name="android.permission.CAMERA" />
    <!--悬浮窗-->
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <!--定位权限-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_BACKGROUND_LOCATION" />
    <!--传感器-->
    <uses-permission android:name="android.permission.BODY_SENSORS" />
    <uses-permission android:name="android.permission.BODY_SENSORS_BACKGROUND" />
    <!--身体活动-->
    <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION" />
    <!--蓝牙权限-->
    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
    <uses-permission android:name="android.permission.BLUETOOTH_SCAN" />
    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" />
    <!--图片地理信息-->
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.ACCESS_MEDIA_LOCATION" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <!--媒体文件读取权限(不适配分区存储)-->
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
    <!--媒体文件读取权限(适配分区存储)-->
    <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
    <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
    <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
    <uses-permission android:name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" />
    <!--安装包-->
    <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
    <!--通知权限-->
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
    <uses-permission android:name="android.permission.NOTIFICATION_SERVICE" />
    <!--勿扰权限-->
    <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" />
    <!--使用统计权限-->
    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
    <!--闹钟提醒权限-->
    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
    <!--忽略电池优化权限-->
    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />

隐私、权限声明

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

根据自己的需要配置相应权限,默认无

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

插件不采集任何数据

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

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