收藏
回答

调用wx.authorize api请求用户授权麦克风权限,怎么无法调起麦克风申请权限的弹窗?

我开发的小程序有使用到用户手机的麦克风功能,但是我想在使用麦克风的报错的时候提醒用户授权,通过wx.authorize api再次唤起弹窗,如下图。

但是这个弹窗并没有在authorize API调用的时候弹出来。只在清理了用户隐私权限后首次要使用到麦克风权限的时候才弹出来。

大佬们帮帮我吧😭

代码片段如下

const recordCtx = wx.getRecorderManager() 
recordCtx.onError(res => {
            console.log("record error", res)
            wx.getSetting({
                success(res) {
                    if (!res.authSetting['scope.record']) {
                        // 用户没有授权麦克风,询问用户要不要重新授权
                        wx.showModal({
                            title: '提示',
                            content: '需要获取您的麦克风权限,请确认授权',
                            success(res) {
                                if (res.confirm) {
                                    console.log('用户点击确定')
  // wx.authorize 没有唤起上图的那个弹窗。
                                    wx.authorize({
                                            scope: 'scope.record',
                                            success() {
                                            // 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
                                              //   wx.startRecord()
                                            // console.log('用户已经同意小程序使用录音功能')
                                            recordCtx.start({
                                                duration: 60 * 1000,
                                                sampleRate: 16000,
                                                format: "mp3",
                                                numberOfChannels: 1
                                            })
                                        }
                                    })
                                } else if (res.cancel) {
                                    console.log('用户点击取消')
                                }
                            }
                        })
                    }
                }
            })


        })


最后一次编辑于  2023-10-08
回答关注问题邀请回答
收藏

4 个回答

  • 风起
    风起
    2023-12-19

    今天遇到一个问题,需要连续开启摄像头授权和麦克风授权,但是只能调出一个授权弹窗,第二个出不来,需要关闭小程序第二次打开才可以,改变授权顺序也一样,真的坑。

    2023-12-19
    有用
    回复 1
    • 愤怒的大晶
      愤怒的大晶
      02-01
      请问后面怎么处理的啊
      02-01
      回复
  • 💋猫黛丽💋
    💋猫黛丽💋
    2023-12-18

    我也出现了这个问题,有没有大佬请教下?

    2023-12-18
    有用
    回复
  • 灰灰的笨丫头
    灰灰的笨丫头
    2023-10-31

    2023-10-31
    有用
    回复 1
    • 王海鹏
      王海鹏
      08-31
      请问如果没有设置隐私声明,即使用户设置了麦克风权限,也无法进行录音吗?
      08-31
      回复
  • Lewis
    Lewis
    2023-10-08

    这个设计是否合理?频繁弹窗是不符合微信规范的

    2023-10-08
    有用
    回复 2
    • Siri...ious
      Siri...ious
      2023-10-08
      应该不是,我单用wx.authorize也没法唤起麦克风的那个弹窗。而且getLocation那个接口我设计的弹窗层次更多,都是能通过wx.authorize唤起的弹窗的
      2023-10-08
      回复
    • Are you ok?
      Are you ok?
      2023-12-06回复Siri...ious
      请问这个问题解决了吗
      2023-12-06
      回复
登录 后发表内容