本文章是针对小程序的 wx.authorize的弹窗申请问题而做出的解答,如有不足之处,请指出,感谢!
下面这段代码是官网所给出的实例代码,但是当我自己去试的时候,出现不弹窗的问题,或者需要我设置app.json
中的permission
字段值,这个也跟着官方文档设置了, 但是弹窗还是不会弹出来,所以我做了一些实验,在小程序开发者中新增了一位开发者,用新用户去打开测试小程序, 这个弹窗申请还是可以弹出的,但是问题来了:一旦拒绝或者同意之后,将不会再次弹窗申请(这里我很想吐槽一下官方-.-),这时候我们可以利用小程序中提供的wx.openSetting跳转到用户设置页面去手动打开,不然是没有别的办法再次弹出申请框了
当然比较方便的办法也可以清空开发工具的授权缓存,就在右上角有个清楚缓存,选择清除便可以了,清空后,授权弹框便可以再次弹出
我已经将wx.openSetting添加到下方代码中~
// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.record" 这个 scope
wx.getSetting({
success(res) {
if (!res.authSetting['scope.record']) {
wx.authorize({
scope: 'scope.record',
success () {
// 用户已经同意小程序使用录音功能,后续调用 wx.startRecord 接口不会弹窗询问
wx.startRecord()
}
wx.openSetting({
success:()=>{
}
})
})
}
}
})