前言
24年华为审核规定,APP向用户索取敏感权限时,应同步告知用户申请该权限的目的。
敏感权限:电话、通讯录、定位、短信、麦克风(录音)、相机、存储、日历、身体传感器、通话记录、健康运动等;
同步告知:需在应用内,权限弹窗申请的同时,告知权限申请的使用目的。
请参考华为审核要求:文档中心
问题
如何去监听权限申请的同时,在上方弹出权限使用目的
解决方案
个人理解,监听到权限的允许,则弹出div目的说明,否则都为隐藏,代码如下:
// html部分
<header class="mui-bar mui-bar-nav">
//标题
</header>
<div v-if="tflag">
// 此处展示位置权限的使用目的
为了您在XX、导航至位置等功能使用
</div>
// js部分
// 检查位置权限
plus.navigator.checkPermission('geolocation', function(permissionState){
if (permissionState === 'granted') {
console.log('位置权限已授予');
} else if (permissionState === 'denied') {
console.log('位置权限被拒绝');
// 使用目的隐藏
} else if (permissionState === 'prompt') {
console.log('需要请求位置权限');
} else {
// 使用目的隐藏
console.log('未知的位置权限状态:', permissionState);
}
});
// 或者用plus.android.requestPermissions方法
- 尝试以上的方法,实际效果如图所示,勉强通过了
总结
使用高德百度地图需要收费,因此我在项目中通过手机定位来获取经纬度。过程中略有不同。