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] = `
${title}
${content}
`; 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); }); }