小程序
小游戏
企业微信
微信支付
扫描小程序码分享
现象:调用 wx.requirePrivacyAuthorize() 时无法触发 wx.onNeedPrivacyAuthorization 事件
排查发现API requirePrivacyAuthorize 如果用户之前已经同意过隐私授权,会立即返回success回调,不会触发 wx.onNeedPrivacyAuthorization 事件。
7 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
微信更新文档,现在可以在app.json添加配置开启隐私功能,开启后隐私相关API 能够正常调用
又没法取消授权了,现在又变成 全部返回 false
现在重试下,设置中取消授权后,needAuthorization可以返回true了
咋不弹呢?
我也很想知道怎么能让这个协议弹出来,现在怎么调用接口返回的needAuthorization都是 false
通过调用 wx.openSetting() 方法可以打开微信客户端的设置页,用户可以在该页面中取消对应的隐私授权,进而将 needAuthorization 置为 true。
以下是示例代码:
// 打开微信设置页 wx.openSetting({ success: function (res) { // 用户在设置页进行了操作后的回调 if (res.authSetting["scope.userInfo"] === false) { // 如果用户取消了用户信息的授权,则可以在这里进行相应处理 } } })
在成功打开设置页并且用户进行了操作后,可以在回调中判断用户是否取消了需要授权的权限。如果用户取消了对应的隐私授权,needAuthorization 将会被置为 true。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
微信更新文档,现在可以在app.json添加配置开启隐私功能,开启后隐私相关API 能够正常调用
又没法取消授权了,现在又变成 全部返回 false
现在重试下,设置中取消授权后,needAuthorization可以返回true了
开发者工具中,授权后通过清理缓存也可以重置为true。现在微信这边又给关了,等官方更新
咋不弹呢?
我也很想知道怎么能让这个协议弹出来,现在怎么调用接口返回的needAuthorization都是 false
通过调用 wx.openSetting() 方法可以打开微信客户端的设置页,用户可以在该页面中取消对应的隐私授权,进而将 needAuthorization 置为 true。
以下是示例代码:
// 打开微信设置页 wx.openSetting({ success: function (res) { // 用户在设置页进行了操作后的回调 if (res.authSetting["scope.userInfo"] === false) { // 如果用户取消了用户信息的授权,则可以在这里进行相应处理 } } })
在成功打开设置页并且用户进行了操作后,可以在回调中判断用户是否取消了需要授权的权限。如果用户取消了对应的隐私授权,needAuthorization 将会被置为 true。
scope.address: false
scope.invoice: false
scope.userInfo: false
scope.userLocation: false
但是 wx.getPrivacySetting 结果中的 needAuthorization 还是 false。这两个查询用户隐私授权状态的API 之间的关联是什么?
wx.getPrivacySetting():该 API 用于获取用户对小程序隐私设置的授权情况,例如开启了哪些隐私设置。它返回的是隐私设置的状态,包括 needAuthorization(是否需要再次授权)和 authSetting(各项隐私设置的详细授权情况)。