首先找到manifest.json文件,開啓微信小程序授權請求
"permission": {
"scope.record": {
"desc": "需要使用麥克風進行語音錄製" // 此處描述需符合微信規範
}
}
然後通過uni.getSetting查詢麥克風授權狀態
麥克風的scope值為scope.record,如果已授權則直接返回,若未授權則彈窗提示用户授權
/**
* 請求麥克風權限
* @return {Promise<boolean>} 返回是否開啓麥克風授權狀態
*/
export const requestRecordPermission = async () => {
return new Promise((resolve, reject) => {
// 檢查權限狀態
uni.getSetting({
success: (res) => {
if (res.authSetting['scope.record']) {
// 已授權,直接使用錄音功能
resolve(true)
} else {
// 未授權,發起授權請求
uni.authorize({
scope: 'scope.record',
success: () => {
resolve(true)
},
fail: (err) => {
resolve(false)
}
});
}
}
});
})
}
在這裏我封裝了授權請求的函數,頁面可直接調用
使用時機,用户點擊語音按鈕的時候調用,允許則返回true,拒絕則返回false,只有true才可進行下一步操作,如果用户已經授權過了,二次點擊的時候不會彈窗,默認返回true,除非清除緩存。
參考文章:
uni.authorize
uni.getSetting