收藏
回答

wx.onNeedPrivacyAuthorization 这个监听接口不写调用不了userinfo

框架类型 问题类型 API/组件名称 终端类型 微信版本 基础库版本
小游戏 Bug wx.onNeedPrivacyAuthorization 微信安卓客户端 8.0.40 3.0.1

wx.onNeedPrivacyAuthorization 这个接口监听后 弹出的窗体是微信自带的授权窗体 比如获取用户信息,如何监听同意和拒绝呢?

测试的结果是只要写了监听接口就能使用了

 resolve({ event: 'exposureAuthorization' })

 resolve({ event: 'agree' })

默认返回就可以了,这个是不是一个bug?

后台隐私协议里已经声明了获取用户信息,麦克风,地理位置,这弹窗是官方默认的授权窗口,但这个接口的描述是自定义的隐私窗口,有点看不懂了?

能给个完整的说明么?



回答关注问题邀请回答
收藏

1 个回答

  • Young nbe
    Young nbe
    2023-09-04

    根据您提供的信息,wx.onNeedPrivacyAuthorization 是微信小程序中用于监听用户隐私授权的接口。当小程序需要获取用户信息、地理位置、麦克风等敏感信息时,微信会弹出默认的授权窗口,要求用户同意授权。


    您提到的问题是在监听到 wx.onNeedPrivacyAuthorization 事件后,如何监听用户在授权窗口中的操作,例如同意或拒绝授权。


    微信小程序提供了以下两种授权方式:


    自定义授权窗口 您可以通过 wx.showAuthUI 方法自定义授权窗口,并在授权完成后获取用户授权信息。在自定义授权窗口中,您可以添加自己的逻辑来处理用户的操作,例如同意或拒绝授权。

    使用默认授权窗口 微信小程序默认会弹出授权窗口,用于获取用户信息、地理位置、麦克风等敏感信息。如果您不需要自定义授权窗口,可以使用 wx.onNeedPrivacyAuthorization 接口来监听用户的操作。

    宠物百科

    在监听到 wx.onNeedPrivacyAuthorization 事件后,您可以通过以下代码来处理用户的操作:


    javascript
    
    wx.onNeedPrivacyAuthorization(function (res) {
    
      console.log(res)
    
      // 在这里可以添加自己的逻辑来处理用户的操作
    
      // 例如监听同意和拒绝授权
    
      // 同意授权
    
      res.resolve({ event: 'agree' })
    
      // 拒绝授权
    
      // res.reject({ event: 'refuse' })
    
    })
    
    
    
    

    在上述代码中,您可以在回调函数中添加自己的逻辑来处理用户的操作。如果用户同意授权,您可以通过调用 res.resolve({ event: 'agree' }) 来告诉微信小程序用户已同意授权。如果用户拒绝授权,您可以通过调用 res.reject({ event: 'refuse' }) 来告诉微信小程序用户已拒绝授权。


    关于您提到的后台隐私协议,微信小程序要求开发者在后台隐私协议中声明获取用户信息的用途和范围。这是为了保障用户的隐私安全和合法性。在微信小程序中,当需要获取用户信息时,微信会根据开发者在后台隐私协议中的声明弹出相应的授权窗口,并要求用户同意授权。


    希望以上说明能够帮助您理解 wx.onNeedPrivacyAuthorization 接口的使用和相关概念。如有其他问题,请随时提问。

    2023-09-04
    有用
    回复 1
    • qwer~asdf
      qwer~asdf
      2023-09-04
      使用默认的授权例如 wx.getUserInfo 会拉起微信默认的授权窗口,同意或者拒绝 在代码层是监听不到的,这时的wx.onNeedPrivacyAuthorization 监听接口该如何操作 我直接默认返回resolve({ event:'agree' }) 么? 现在在开发工具测试 基础库版本3.0.1 可以使用,3.0.0 基础库 在默认授权窗口点击同意后,却不会触发api调用,是基础库的问题么?
      2023-09-04
      回复
登录 后发表内容