// 使用例如
opSetAuth('scope.record', '录音权限').then((res) => {// console.log(res);// if (res) {// }// });// 询问授权并且打开 function opSetAuth(scope , title = '') {/*** 打开系统设置界面并检查权限* @param {string} scope - 需要检查的权限名称* @param {string} title - 授权名字* @returns {Promise} - 返回一个 Promise,确保用户在设置界面授权了权限*/function openAppSettings(scope, title) {return new Promise((resolve, reject) => {uni.showModal({title: '提示',content: '需要您授权' + title,success: () => {uni.openSetting({success(res) {if (res.authSetting[scope]) {console.log(`${scope} 已在设置中授权`);resolve(true);} else {console.warn(`${scope} 在设置中未授权`);reject(new Error(`用户未授权 ${scope}`));}},fail(err) {console.error('打开设置失败', err);reject(err);},});},});});}/*** 检查并确保某个权限已授权* @param {string} scope - 需要检查的权限名称,例如 'scope.userLocation'* @returns {Promise} - 返回一个 Promise,确保权限已经开启*/return new Promise((resolve, reject) => {// 检查用户是否已经授权该权限 uni.getSetting({success(res) {if (res.authSetting[scope]) {// 已授权 console.log(`${scope} 已授权`);resolve(true);} else {// 请求授权 uni.authorize({scope,success() {console.log(`${scope} 授权成功`);resolve(true);},fail() {console.warn(`${scope} 授权失败,打开设置界面`);// 打开设置界面让用户手动授权openAppSettings(scope , title).then(resolve).catch(reject);},});}},fail(err) {console.error('获取设置失败', err);reject(err);},});}); }