小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
安卓的通知权限写法,是调用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>