Files
wanjiashangchao-user/common/utils/permissionTips.js
2025-04-30 14:04:34 +08:00

93 lines
3.0 KiB
JavaScript

function showView(permissions) {
// #ifdef APP-PLUS
const permissionTipsArr = [{
"keyName": "android.permission.INTERNET",
"title": '使用网络权限',
"content": '与服务器进行数据交换,如同步用户数据、获取最新信息等'
}, {
"keyName": "android.permission.READ_EXTERNAL_STORAGE",
"title": '读写SD卡权限',
"content": '访问用户的媒体库,如照片相册等'
}, {
"keyName": "android.permission.WRITE_EXTERNAL_STORAGE",
"title": '读写SD卡权限',
"content": '访问用户的媒体库,如照片相册等'
}, {
"keyName": "android.permission.READ_PHONE_STATE",
"title": '读取设备标识权限',
"content": '根据设备特征提供定制化的用户体验'
}, {
"keyName": "android.permission.CAMERA",
"title": '拍照权限',
"content": '请求相机权限,使用相机,用于扫描二维码或者上传图片'
}, {
"keyName": "android.permission.ACCESS_COARSE_LOCATION",
"title": '定位权限',
"content": '根据用户位置提供附近的商家、餐厅等信息'
}, {
"keyName": "android.permission.ACCESS_FINE_LOCATION",
"title": '定位权限',
"content": '根据用户位置提供附近的商家、餐厅等信息'
},{
"keyName": "android.permission.CALL_PHONE",
"title": '拨打电话权限',
"content": '请求拨打电话权限,用于联系商家或者平台'
}]
const permissionTips = Array.isArray(permissionTipsArr) ? permissionTipsArr.reduce((accumulator, {
keyName,
title,
content,
}) => {
accumulator[keyName] =
`<div class='tips-item'><div class='title'>${title}</div><div class='center'>${content}</div></div>`;
return accumulator;
}, {}) : {};
let tips = ''
permissions.map(key => {
if (permissionTips[key]) {
tips += permissionTips[key]
} else {
console.log(key + '未配置提示语');
}
})
if (!tips) return null
const systemInfo = uni.getSystemInfoSync()
let wvPath = '/static/permissionTips.html'
let wv = new plus.webview.create(
wvPath, 'permissionTips', {
'uni-app': 'none',
top: systemInfo.statusBarHeight,
left: 0,
width: systemInfo.screenWidth,
height: systemInfo.screenHeight - systemInfo.statusBarHeight,
background: 'transparent',
}, {
tips,
}
)
wv.show()
return wv
// #endif
return null
}
export function permissionListener() {
// showView(["android.permission.CAMERA", "android.permission.ACCESS_COARSE_LOCATION", "android.permission.READ_PHONE_STATE", "android.permission.READ_EXTERNAL_STORAGE"])
let view = null
let createRequestPermissionListener = uni.createRequestPermissionListener();
createRequestPermissionListener.onRequest((e) => {
console.log('onRequest', e);
});
createRequestPermissionListener.onConfirm((e) => {
console.log('onConfirm', e);
if (view && view.close) view.close()
if (view && view.destroy) view.destroy()
view = showView(e)
});
createRequestPermissionListener.onComplete((e) => {
if (view && view.close) view.close()
if (view && view.destroy) view.destroy()
view = null
console.log('onComplete', e);
});
}