动态

详情 返回 返回

uniapp微信小程序請求麥克風授權 - 动态 详情

首先找到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

Add a new 评论

Some HTML is okay.