评论

关于新版隐私协议接口wx.onNeedPrivacyAuthorization的适配解读以及实现代码

关于新版隐私协议接口wx.onNeedPrivacyAuthorization的适配解读以及实现代码

官方公告地址:

https://developers.weixin.qq.com/community/develop/doc/00042e3ef54940ce8520e38db61801

目前,开发工具或者体验版的小程序,调试基础库如果是2.33.0及以上就得适配了,线上版本9月15日之后生效,所以这之前需要尽快改完,发布一版,否则到了9月15号之后 线上就会生效报错了。

其实改起来也很简单,以下是实现步骤和代码:

1、首先看一下这个网址,里边包含涉及到的隐私的接口,这些接口都要适配一下

https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html

在以上接口用到的页面,需要画一下类似上边的弹窗(这个弹窗可以全局定义个组件,方便多个页面共用),然后里边蓝字可以点击后调用wx.openPrivacyContract(Object object)接口即可,会自动跳转打开隐私协议页面。

拒绝按钮可以加一个点击事件,然后在事件里这样写

同意按钮比较特殊,布局需要用button这样写,记得给button加一个Id

然后在handleAgreePrivacyAuthorization里就可以获取到点击事件,这样写

2、最后需要在onLoad或者onShow里加上以下监听代码,在这里边让自定义的隐私弹窗显示出来即可。


以上代码加上就可以了,如果业务逻辑用到了需要判断是否授权过,可以加上 wx.getPrivacySetting(Object object)去获取是否授权过,用不到可以不加这个判断。

最后一次编辑于  2023-08-16  
点赞 28
收藏
评论

84 个评论

  • flowerRed
    flowerRed
    2023-08-28

    隐私授权 是不是授权一次就行了?(我这边业务 有手机号才会进行后续流程)

    2023-08-28
    赞同
    回复
  • 请叫我阿空
    请叫我阿空
    2023-08-28

    发现核心只有button open-type="agreePrivacyAuthorization"这个东西。进入页面就弹窗,用户点了就关闭。其它都不要行不行(会不会微信不给你审核过)

    2023-08-28
    赞同
    回复 1
    • A|ゞHetols.
      A|ゞHetols.
      发表于小程序端
      2023-08-28

      并不是,核心是必须有那个隐私协议,以及按钮,按钮对应的事件,如果用户不触发同意事件,那么你所有隐私api都无法调用

      2023-08-28
      回复
  • 神经蛙
    神经蛙
    2023-08-28

    大佬,我问下这个弹窗的内容是固定的吗还是依据不同的接口来写不同的内容这点有点疑虑,比如要调用获取用户信息授权的接口弹窗内容要写获取用户信息的内容,获取用户定位的接口就写获取用户定位信息的内容,还是说统一就写隐私接口调用的内容就行了

    2023-08-28
    赞同
    回复
  • feibinyangV
    feibinyangV
    2023-08-25


    小伙伴们,可以调试了。

    PS:不知道为啥微信官方跟个小姑娘似的,扭扭捏捏,大大方方的公告出来不行吗

    2023-08-25
    赞同
    回复 2
    • Nana
      Nana
      2023-08-25
      没用,调不起来,demo也调不起来
      2023-08-25
      回复
    • 一笑皆春
      一笑皆春
      2023-08-25回复Nana
      开发工具基础库调到3.0.0
      2023-08-25
      回复
  • 郭伟伟
    郭伟伟
    2023-08-24

    a页面注册监听,导航进入b页面(b页面也注册监听),返回a页面后a页面监听失效了,怎么解决呢?

    2023-08-24
    赞同
    回复 3
    • 一笑皆春
      一笑皆春
      2023-08-24
      监听放在onShow里边就可以了
      2023-08-24
      回复
    • 郭伟伟
      郭伟伟
      2023-08-25回复一笑皆春
      也行吧
      2023-08-25
      回复
    • 郭伟伟
      郭伟伟
      2023-08-25回复郭伟伟
      小程序里引用的第三方插件里有调用隐私接口,需要小程序弹窗吗,隐私声明里需要声明吗
      2023-08-25
      回复
  • 蜂蜜柚子茶🍀
    蜂蜜柚子茶🍀
    2023-08-24

    有多个页面都需要监听onNeedPrivacyAuthorization,这个api有频率限制吗

    2023-08-24
    赞同
    回复
  • 珎邜
    珎邜
    2023-08-24

    this.resolvePrivacyAuthorization is not a function 请问有遇到的吗,如何解决呀

    2023-08-24
    赞同
    回复 3
    • 一笑皆春
      一笑皆春
      2023-08-24
      onShow里没加onNeedPrivacyAuthorization,或者基础库不是3.0.0
      2023-08-24
      回复
    • Trap😈
      Trap😈
      2023-08-28回复一笑皆春
      大佬,我基础库是3.0.0,也调用了onNeedPrivacyAuthorization方法,但是进不到resolve方法,是因为我微信后台现在还没有配置协议导致的吗?
      2023-08-28
      回复
    • A|ゞHetols.
      A|ゞHetols.
      发表于小程序端
      2023-08-28

      方法名得要官方的按钮那个,不能用类似aa()这样的自定义函数名

      2023-08-28
      回复
  • Trap😈
    Trap😈
    2023-08-24

    有人有遇到这个问题吗?

    app.json配置了"__usePrivacyCheck__"true,

    基础库版本:3.0.0,

    目前项目没有配置对应的隐私政策,在页面中使用了chooseMessageFile的接口,但是组件内部调用 wx.getPrivacySetting返回的res.needAuthorization还是false? 

    以及wx.onNeedPrivacyAuthorization一直无法进入resolve方法

    2023-08-24
    赞同
    回复 3
    • Nana
      Nana
      2023-08-24
      __usePrivacyCheck__:true配置在app.json中的哪里?
      2023-08-24
      回复
    • Nana
      Nana
      2023-08-25
      我也是这样
      2023-08-25
      回复
    • Trap😈
      Trap😈
      2023-08-28回复Nana
      最外层json里
      2023-08-28
      回复
  • IU
    IU
    2023-08-23

    为啥我触发不了wx.onNeedPrivacyAuthorization,resolve回调啊?


    2023-08-23
    赞同
    回复 4
  • 来去之间·王启年
    来去之间·王启年
    2023-08-23

    感谢楼主分享以及官方提供示例

    2023-08-23
    赞同
    回复

正在加载...

登录 后发表内容