评论

关于新版隐私协议接口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 个评论

  • 苏格拉没有底
    苏格拉没有底
    2023-09-01

    大佬,我想问一下,就是比如我现在小程序应用了 手机号,精确定位,剪切板等隐私接口,然后是不是每次用到了之后都要弹出授权弹框给用户确认授权后才能使用这些接口,还是说只是弹一次,授权一次,其他隐私接口都能用了

    2023-09-01
    赞同
    回复
  • sᴜᴘᴇʀ ᴊᴀɴᴇ🔆
    sᴜᴘᴇʀ ᴊᴀɴᴇ🔆
    2023-08-31

    请问,如果手机微信版本太低,会影响隐私接口的使用吗?

    2023-08-31
    赞同
    回复
  • sᴜᴘᴇʀ ᴊᴀɴᴇ🔆
    sᴜᴘᴇʀ ᴊᴀɴᴇ🔆
    2023-08-31

    已经在app.json配置了 "__usePrivacyCheck__": true,基础库设置成3.0.0了,调用onNeedPrivacyAuthorization,还是没有触发,请问是什么问题?

    2023-08-31
    赞同
    回复 1
    • 张延张延延
      张延张延延
      2023-08-31
      我是调用getPrivacySetting后needAuthorization返回true才调onNeedPrivacyAuthorization,每次清缓存都会触发
      2023-08-31
      回复
  • 老友
    老友
    2023-08-31

    我想问一下,needAuthorization一直为false,授权监听的也一直不触发,有办法清掉之前的授权吗,不然一直调试不了。。

    2023-08-31
    赞同
    回复 2
    • 老友
      老友
      2023-08-31回复« 子不语
      清缓存全清了,但是返回还是false。清缓存好像只能把官方自带的哪个授权的清掉,但是这里这个是关于隐私授权的好像不行
      2023-08-31
      回复
    • « 子不语
      « 子不语
      2023-09-01回复老友
      我是把模拟器缓存全清除的,不只是授权那个。还有app.json配置了 "__usePrivacyCheck__": true,基础库设置成3.0.0,使用的隐私接口要在小程序后台添加上
      2023-09-01
      回复
  • 慢慢变老3
    慢慢变老3
    2023-08-30

    插件的怎么弹窗,几个api都不允许插件使用

    2023-08-30
    赞同
    回复
  • .
    .
    2023-08-30

    改成了隐私监听授权模式上线后,要是用户微信版本对应基础库低于2.32.3,授权登录的时候就会直接登录了。这样会有问题吗,会影响审核发版吗?

    2023-08-30
    赞同
    回复
  • 译文
    译文
    2023-08-30

    但是我当前页面存在`uni.chooseImage`,他没有走到下面的 resolve 啊

    if (wx.onNeedPrivacyAuthorization) {
      wx.onNeedPrivacyAuthorization(resolve => {
        console.log('resolve', '说明本页面有隐私接口?就需要弹隐私条款弹窗?');
      })  
    }
    
    
    2023-08-30
    赞同
    回复 1
    • Trap😈
      Trap😈
      2023-08-30
      我也是没有进去
      2023-08-30
      回复
  • 张健威
    张健威
    2023-08-29

    你好,如果使用wx.onNeedPrivacyAuthorization在app.js监听,触发回调的时候,跳转到一个页面来处理同意隐私协议的逻辑,这样就不用每个页面都添加一次组件了。这样的方案可行吗

    2023-08-29
    赞同
    回复 1
    • Stark
      Stark
      2023-08-29
      我也是这么想的,不然太多页面了。
      2023-08-29
      回复
  • 珂珂
    珂珂
    2023-08-29

    点击了“同意”按钮,报了这个错,但是刷新后,再次点击就不会再弹出隐私框了,说明应该是通了,但是为啥会报错呢呀?没定义?


    2023-08-29
    赞同
    回复 3
    • .
      .
      2023-08-29
      onNeedPrivacyAuthorization 里面要把resolve存下来
      2023-08-29
      回复
    • 珂珂
      珂珂
      2023-08-29回复.
      保存了,不过是在父组件中保存的,上面截图是子组件的
      2023-08-29
      回复
    • 珂珂
      珂珂
      2023-08-30回复.
      好了,定义了个全局变量
      2023-08-30
      回复
  • Nana
    Nana
    2023-08-29

    wx.openPrivacyContract打开隐私协议,是空白,请问怎么解决?

    2023-08-29
    赞同
    回复 2
    • 许多鱼
      许多鱼
      2023-08-29
      同问
      2023-08-29
      回复
    • 俊
      2023-08-29
      模拟器打不开,用真机可以
      2023-08-29
      1
      回复

正在加载...

登录 后发表内容