uniapp Android的权限引导问题下

647 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

安卓的通知权限写法,是调用H5+的接口

var main = plus.android.runtimeMainActivity();  
var pkName = main.getPackageName();  
var NotificationManagerCompat = plus.android.importClass("android.support.v4.app.NotificationManagerCompat");  
var packageNames = NotificationManagerCompat.from(main);  
console.log(JSON.stringify(packageNames));  
if (packageNames.areNotificationsEnabled()) {  
    console.log('已开启通知权限');  
}else{  
    uni.showModal({  
        title: '提示',  
        content: '请先打开APP通知权限',  
        showCancel: false,  
        success: function (res) {  
            if (res.confirm) {  
                var Intent = plus.android.importClass('android.content.Intent');  
                var intent = new Intent('android.settings.APP_NOTIFICATION_SETTINGS');//可设置表中所有Action字段  
                intent.putExtra('android.provider.extra.APP_PACKAGE', pkName);  
                main.startActivity(intent);  
            }  
        }  
    });  
}

设置启动隐私和服务协议

manifest.json文件中

"privacy" : {
    "prompt" : "template",
    "template" : {
        //prompt取值为template时有效,用于配置模板提示框上显示的内容
        "title" : "服务协议和隐私政策",
        "message" : "  尊敬的用户,欢迎您注册成为本应用用户,在注册前请您仔细阅读<a href='协议地址'>《用户协议》</a>及<a href='政策地址'>《隐私政策》</a>,了解我们对您使用我们APP制定的规则,您个人信息的处理以及申请权限的目的和使用范围。<br/>  经您确认后,本用户协议和隐私权政策即在您和本应用之间产生法律效力。请您务必在注册之前认真阅读全部服务协议内容,如有任何疑问,可向本应用客服咨询。",
        "buttonAccept" : "同意并继续", //继续下一步
        "buttonRefuse" : "不同意" //退出下载
    }
},

离线打包提示语配置及弹窗配置

在主项目的strings.xml中添加如下字段。strings.xml位于 项目目录/src/main/res/values下,如果文件或文件夹不存在,直接新建即可。

// 存储权限提示语配置
<resources>  
    <string name="dcloud_permission_write_external_storage_message">存储权限提示语</string>  
</resources>  

// 读取手机状态权限配置
<resources>  
    <string name="dcloud_permission_read_phone_state_message">读取手机状态权限提示语</string>  
</resources>  

弹窗配置

在androidManifest.xml的application节点下添加如下字段,value可取值为 none、once、always。

存储权限弹窗配置
<application>  
    <meta-data android:name="DCLOUD_WRITE_EXTERNAL_STORAGE" android:value="once"/>  
</application>  
读取手机状态弹窗配置
<application>  
    <meta-data android:name="DCLOUD_READ_PHONE_STATE" android:value="once"/>  
</application>