更新记录

1.0.0(2025-07-11)

初始化


平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - 4.4 - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

uni-app x

Chrome Safari Android iOS 鸿蒙 微信小程序
- - 5.0 - - -

xtf-androidper

android 应用权限申请

插件测试使用方法

  1. 选择试用,绑定要试用的项目appid,

  2. 选择后下载到对应的本地项目,

  3. 按照文档 -》把插件引入项目(即 import {requestAndroidPermission, requestPermison, PermissionPara,openAppDetail } from "@/uni_modules/xtf-androidper" 需要先引入),

  4. 发布-》云打包-》选择制作基座-》打包等基座制作完成

  5. 运行 -》 运行到手机或模拟器-》运行到Androidapp基座-》选择使用自定义基座运行-》选择手机-》运行

  6. 若之前手机安装过基座需要先卸载之前的基座

    uniappx

    <template>
    <view>
        <button style="margin: 10rpx;" @click="onClick(0)" type="primary">申请位置权限</button>
        <button style="margin: 10rpx;" @click="onClick(1)" type="primary">申请相机权限</button>
        <button style="margin: 10rpx;" @click="onClick(2)" type="primary">申请麦克风权限</button>
        <button style="margin: 10rpx;" @click="onClick(3)" type="primary">申请电话权限</button>
        <button style="margin: 10rpx;" @click="onClick(4)" type="primary">申请存储权限</button>
        <button style="margin: 10rpx;" @click="onClick(5)" type="primary">申请通讯录权限</button>
        <button style="margin: 10rpx;" @click="onClick(6)" type="primary">申请日历权限</button>
        <button style="margin: 10rpx;" @click="onClick(7)" type="primary">申请传感器权限</button>
        <button style="margin: 10rpx;" @click="onClick(8)" type="primary">申请短信权限</button>
        <button style="margin: 10rpx;" @click="onClick(9)" type="primary">申请后台定位权限</button>
        <button style="margin: 10rpx;" @click="onClick(10)" type="primary">申请发送通知权限</button>
        <button style="margin: 10rpx;" @click="openDetail" type="primary">跳转应用详情</button>
    </view>
    </template>
    <script>
    import {requestAndroidPermission, requestPermison, PermissionPara,openAppDetail } from "@/uni_modules/xtf-androidper"
    export default {
        data() {
            return {
                title: 'Hello'
            }
        },
        onLoad() {
        },
        methods: {
            openDetail(){
                openAppDetail();
            },
            onClick(id:number){
                var title="权限申请说明";
                var content="";
                var perName="";
                if(id==0){
                    perName="android.permission.ACCESS_FINE_LOCATION";
                    content="申请位置权限介绍";
                }else if(id==1){
                    perName="android.permission.CAMERA";
                    content="申请相机权限介绍";
                }else if(id==2){
                    perName="android.permission.RECORD_AUDIO";
                    content="申请麦克风权限介绍";
                }else if(id==3){
                    perName="android.permission.READ_PHONE_STATE";
                    content="申请电话权限介绍";
                }else if(id==4){
                    perName="android.permission.WRITE_EXTERNAL_STORAGE";
                    content="申请存贮权限介绍";
                }else if(id==5){
                    perName="android.permission.WRITE_CONTACTS";
                    content="申请通信录权限介绍";
                }else if(id==6){
                    perName="android.permission.WRITE_CALENDAR";
                    content="申请日历录权限介绍";
                }else if(id==7){
                    perName="android.permission.BODY_SENSORS";
                    content="申请传感器权限介绍";
                }else if(id==8){
                    content="申请短信录权限介绍";
                    perName="android.permission.READ_SMS";
                }else if(id==9){
                    content="申请后台定位权限介绍";
                    perName="android.permission.ACCESS_BACKGROUND_LOCATION";
                }else if(id==10){
                    content="申请发送通知权限介绍";
                    perName="android.permission.POST_NOTIFICATIONS";
                }
                requestAndroidPermission({
                    tipsTitleText:title,
                    tipsContentText:content,
                    permissionName:perName,
                    permissionStateCallback:function(res:number){
                        console.log(res);
                    }
                } as PermissionPara);
            }
        }
    }
    </script>

    uniapp

    <template>
    <view>
        <button style="margin: 10rpx;" @click="onClick(0)" type="primary">申请位置权限</button>
        <button style="margin: 10rpx;" @click="onClick(1)" type="primary">申请相机权限</button>
        <button style="margin: 10rpx;" @click="onClick(2)" type="primary">申请麦克风权限</button>
        <button style="margin: 10rpx;" @click="onClick(3)" type="primary">申请电话权限</button>
        <button style="margin: 10rpx;" @click="onClick(4)" type="primary">申请存储权限</button>
        <button style="margin: 10rpx;" @click="onClick(5)" type="primary">申请通讯录权限</button>
        <button style="margin: 10rpx;" @click="onClick(6)" type="primary">申请日历权限</button>
        <button style="margin: 10rpx;" @click="onClick(7)" type="primary">申请传感器权限</button>
        <button style="margin: 10rpx;" @click="onClick(8)" type="primary">申请短信权限</button>
        <button style="margin: 10rpx;" @click="onClick(9)" type="primary">申请后台定位权限</button>
        <button style="margin: 10rpx;" @click="onClick(10)" type="primary">申请发送通知权限</button>
        <button style="margin: 10rpx;" @click="openDetail" type="primary">跳转应用详情</button>
    </view>
    </template>
    <script>
    import {requestAndroidPermission, requestPermison,openAppDetail } from "@/uni_modules/xtf-androidper"
    export default {
        data() {
            return {
                title: 'Hello'
            }
        },
        onLoad() {
        },
        methods: {
            openDetail(){
                openAppDetail();
            },
            onClick(id){
                var title="权限申请说明";
                var content="";
                var perName="";
                if(id==0){
                    perName="android.permission.ACCESS_FINE_LOCATION";
                    content="申请位置权限介绍";
                }else if(id==1){
                    perName="android.permission.CAMERA";
                    content="申请相机权限介绍";
                }else if(id==2){
                    perName="android.permission.RECORD_AUDIO";
                    content="申请麦克风权限介绍";
                }else if(id==3){
                    perName="android.permission.READ_PHONE_STATE";
                    content="申请电话权限介绍";
                }else if(id==4){
                    perName="android.permission.WRITE_EXTERNAL_STORAGE";
                    content="申请存贮权限介绍";
                }else if(id==5){
                    perName="android.permission.WRITE_CONTACTS";
                    content="申请通信录权限介绍";
                }else if(id==6){
                    perName="android.permission.WRITE_CALENDAR";
                    content="申请日历录权限介绍";
                }else if(id==7){
                    perName="android.permission.BODY_SENSORS";
                    content="申请传感器权限介绍";
                }else if(id==8){
                    content="申请短信录权限介绍";
                    perName="android.permission.READ_SMS";
                }else if(id==9){
                    content="申请后台定位权限介绍";
                    perName="android.permission.ACCESS_BACKGROUND_LOCATION";
                }else if(id==10){
                    content="申请发送通知权限介绍";
                    perName="android.permission.POST_NOTIFICATIONS";
                }
                requestAndroidPermission({
                    tipsTitleText:title,
                    tipsContentText:content,
                    permissionName:perName,
                    permissionStateCallback:function(res){
                        console.log(res);
                    }
                });
            }
        }
    }
    </script>

api 介绍

判断是否有权限

var have=isHavePermision("android.permission.CAMERA"");// 判断是否有相机权限

判断用户是否已经明确拒绝权限

var have=shouldShowRequestPermissionRationale("android.permission.CAMERA"");// 判断用户是否已经明确拒绝权限  true 表示已经拒绝

申请权限

requestAndroidPermission

uniapp

requestAndroidPermission({
                    tipsTitleText:title,
                    tipsContentText:content,
                    permissionName:perName,
                    permissionStateCallback:function(res){
                        console.log(res);
                    }
                });

uniappx

requestAndroidPermission({
                    tipsTitleText:title,
                    tipsContentText:content,
                    permissionName:perName,
                    permissionStateCallback:function(res:number){
                        console.log(res);
                    }
                } as PermissionPara);

参数介绍

export type PermissionPara = {
    showTips?:boolean,// 申请权限时 是否显示权限介绍
    tipsContentText:string,// 权限内容介绍
    tipsTitleText:string, // 权限标题介绍  空则不显示
    bgColor?:string, //弹框背景颜色
    topMargin?:number,//弹框距离顶部的距离
    leftRightMarign?:number,//弹框左右间距
    innerPadding?:number,// 弹框内容间距
    radius?:number,//弹框背景圆角
    showTime?:number,//弹框显示时间 默认一直显示 如5000代表显示5秒
    tipsTitleTextColor?:string, // 弹框标题的颜色 如 #000000
    titleContentMarign?:number // 弹框内标题与内容的间距 如20
    tipsContentTextColor?:string,// 弹框内容文字颜色 如 #000000
    tipsContentFontSize?:number,// 弹框内容文字大小
    tipsTitleFontSize?:number,// 弹框标题文字大小
    permissionName?:string, // 申请权限的名称
    permissionStateCallback?:(b:number)=>void,// 权限回调  0 有权限 1  拒绝  2 明确拒绝不在提醒

}

常见权限清单

下方权限请选择需要的注册到mainfest.json

    <!--相机-->
    <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" />

开发文档

UTS 语法 UTS API插件 UTS uni-app兼容模式组件 UTS 标准模式组件 Hello UTS

隐私、权限声明

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

按需自行配置

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

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

暂无用户评论。

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