吉安感知网项目-前端
chenyao
2026-02-12 6c3a421bce3cdcd5705cd694938642885db605e4
uniapps/work-app/src/subPackages/voiceCallDetail/index.vue
@@ -23,42 +23,41 @@
 */
async function requestAndroidMicPermission() {
  try {
    // 使用 uni 的权限 API(需要 HBuilderX 3.4.0+)
    if (uni.requestPermissions) {
      const result = await uni.requestPermissions({
        permissions: ['android.permission.RECORD_AUDIO']
      })
      console.log('权限请求结果:', result)
      if (result[0].granted) {
        console.log('✅ 麦克风权限已授予')
        return true
      } else {
        console.warn('⚠️ 麦克风权限被拒绝')
        // 可以提示用户
        uni.showModal({
          title: '权限提示',
          content: '语音通话需要麦克风权限,请前往设置开启',
          showCancel: false,
          success: () => {
            // 跳转到应用设置
            plus.runtime.openURL(plus.runtime.getProperty('package') + '://settings')
    // 获取麦克风权限
    return await new Promise((resolve) => {
      plus.android.requestPermissions(
        ['android.permission.RECORD_AUDIO'],
        (result) => {
          if (result.granted.length > 0) {
            console.log('麦克风权限已获取')
            resolve(true)
            return
          }
        })
        return false
      }
    }
    // 降级方案:使用原生方法
    return await requestAndroidMicPermissionNative()
          if (result.deniedAlways.length > 0) {
            uni.showModal({
              title: '提示',
              content: '需要麦克风权限才能正常使用语音功能,请前往系统设置开启',
              success(res) {
                if (res.confirm) {
                  plus.runtime.openURL('app-settings:')
                }
              },
            })
          }
          resolve(false)
        },
        (error) => {
          console.error('请求麦克风权限失败', error)
          resolve(false)
        }
      )
    })
  } catch (error) {
    console.error('❌ 请求麦克风权限失败:', error)
    console.error('❌ 请求麦克风权限失败', error)
    return false
  }
}
// #endif
onLoad(async (options) => {