function showView(permissions) { // #ifdef APP-PLUS const permissionTipsArr = [{ "keyName": "android.permission.INTERNET", "title": global.i18n.t('使用网络权限'), "content": global.i18n.t('与服务器进行数据交换,如同步用户数据、获取最新信息等') }, { "keyName": "android.permission.READ_EXTERNAL_STORAGE", "title": global.i18n.t('读写SD卡权限'), "content": global.i18n.t('访问用户的媒体库,如音乐播放列表、照片相册等') }, { "keyName": "android.permission.WRITE_EXTERNAL_STORAGE", "title": global.i18n.t('读写SD卡权限'), "content": global.i18n.t('访问用户的媒体库,如音乐播放列表、照片相册等') }, { "keyName": "android.permission.READ_PHONE_STATE", "title": global.i18n.t('读取设备标识权限'), "content": global.i18n.t('根据设备特征提供定制化的用户体验') }, { "keyName": "android.permission.CAMERA", "title": global.i18n.t('拍照权限'), "content": global.i18n.t('扫描二维码或条形码,用于支付、登录等场景') }, { "keyName": "android.permission.ACCESS_COARSE_LOCATION", "title": global.i18n.t('定位权限'), "content": global.i18n.t('根据用户位置提供附近的商家、景点、餐厅等信息') }] const permissionTips = Array.isArray(permissionTipsArr) ? permissionTipsArr.reduce((accumulator, { keyName, title, content }) => { accumulator[keyName] = `
${title}
${content}
` return accumulator }, {}) : {} let permissionInfo = '' permissions.map((key) => { if (permissionTips[key]) { permissionInfo += permissionTips[key] } else { console.log(key + '未配置提示语') } }) if (!permissionInfo) 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', }, { permissionInfo, } ) wv.show() return wv // #endif return null } let platform = uni.getSystemInfoSync().platform export function permissionListener() { // showView(["android.permission.CAMERA", "android.permission.ACCESS_COARSE_LOCATION", "android.permission.READ_PHONE_STATE", "android.permission.READ_EXTERNAL_STORAGE"]) if (platform !== 'android') return let view = null let createRequestPermissionListener = uni.createRequestPermissionListener() createRequestPermissionListener.onRequest((e) => { }) createRequestPermissionListener.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 }) }