我开发的小程序有使用到用户手机的麦克风功能,但是我想在使用麦克风的报错的时候提醒用户授权,通过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('用户点击取消')
}
}
})
}
}
})
})
今天遇到一个问题,需要连续开启摄像头授权和麦克风授权,但是只能调出一个授权弹窗,第二个出不来,需要关闭小程序第二次打开才可以,改变授权顺序也一样,真的坑。
我也出现了这个问题,有没有大佬请教下?
这个设计是否合理?频繁弹窗是不符合微信规范的