收藏
回答

小程序隐私授权wx.onNeedPrivacyAuthorization案例分享?

目前有些小伙伴wx.onNeedPrivacyAuthorization授权有疑问。所以分享一下目前我在开发者工具中的demo,没完整测试过。供大家参考一下

1、首先,登录小程序后台。在【设置】-【基本设置】-【服务内容与声明】-【用户隐私保护指引】中,按需求设置,填写你调用隐私接口用来做什么。提交后,官方会审核

2、目前,官方接口有问题,wx.getPrivacySetting接口(此接口是用来辅助的,用来判断当前用户是否已经授权过)一直反馈false,导致wx.onNeedPrivacyAuthorization无法触发。所以可以先不用调试全流程,先统计下那些业务/页面调用了隐私接口。具体隐私接口官方有列出来,参考链接:https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html 中的“开发者处理的信息”这一部分

3、在官方接口准备好前,可以先准备下隐私弹框组件。后续wx.onNeedPrivacyAuthorization中要展示此组件。弹框中的隐私协议可以通过wx.openPrivacyContract

打开第1步中,在微信后台填写的隐私指引页面。(PC端跳转空白页面,真机调试能打开页面)

下面提供几个demo代码图片

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

7 个回答

  • BOBO
    BOBO
    2023-08-19

    我写的一个组件demo。仅供参考

    https://developers.weixin.qq.com/community/develop/article/doc/0002a64dec8ca8182f30c692f6d813

    2023-08-19
    有用 1
    回复
  • f
    f
    2023-08-16

    就想知道一点,每个涉及到隐私接口的页面都要写这么一套逻辑吗?

    之前有楼主说,onNeedPrivacyAuthorization可以只用一次,那弹框呢,要所有涉及到的页面都要加吗?

    2023-08-16
    有用 1
    回复 6
    • BOBO
      BOBO
      2023-08-16
      是否每个页面都都加弹框和js代码?
      ---------------------------
      目前我的建议是保险起见,都加。应为你不知道你的用户从那个页面调用了隐私接口从而触发了onNeedPrivacyAuthorization方法。有分享说在app.js里进行onNeedPrivacyAuthorization监听。后续看是否有大佬分享案例吧
      2023-08-16
      回复
    • BOBO
      BOBO
      2023-08-16
      onNeedPrivacyAuthorization之调动一次是说,同一个隐私接口,如果多个页面调用了。在某一个页面触发了onNeedPrivacyAuthorization且用户授权了,后续页面同一个隐私接口就不会触发onNeedPrivacyAuthorization(因为微信侧记录用户授权了改隐私接口)。举例:有A和B2个页面调用了手机号码授权接口。如果用户在A页面授权,那么当用户进入B页面,再调用手机号码授权接口的时候,就不会弹窗了。应为授权过了。但是现在的问题是,你不知道勇士先先进入A还是B页面。所以2个页面都要进行onNeedPrivacyAuthorization监听。
      --------------
      以上观点,仅供参考
      2023-08-16
      2
      回复
    • 李林
      李林
      2023-08-17回复BOBO
      就是说在调用手机号授权接口触发onNeedPrivacyAuthorization后 后续只有手机号授权接口可以正常用 在其他隐私接口没触发onNeedPrivacyAuthorization之前 还是不能用的呗
      2023-08-17
      回复
    • BOBO
      BOBO
      2023-08-17回复李林
      这个问题,我在其他帖子里。咨询了社区官方人员。目前没给回复。就是如果在隐私指引中列出了ABC三个隐私接口。如果当前也用户触发了B接口并授权了。那么微信侧记录的用户授权是只记录B接口还是ABC都授权了。(最糟糕的情况,你一个页面调用了ABC三个隐私接口。要弹框三次!!!)
      2023-08-17
      回复
    • 青青
      青青
      2023-09-22回复BOBO
      我服了 我很多个页面 岂不是要弹很多次了
      2023-09-22
      回复
    查看更多(1)
  • 嗔
    2023-09-12

    TMD 微信是真尼玛的傻逼, 能在接口中兼容处理 非恶心开发者

    2023-09-12
    有用
    回复
  • okkk
    okkk
    2023-08-25

    onNeedPrivacyAuthorization写在onload没触发是怎么回事呢,我用的getPrivacySetting去弹窗,确定的时候按照你写的报resolvePrivacyAuthorization undefined

    2023-08-25
    有用
    回复 5
    • BOBO
      BOBO
      2023-08-25
      onNeedPrivacyAuthorization是要有触发动作的。比如用户点击了某按钮调用了隐私接口。微信才会去触发你页面是上的onNeedPrivacyAuthorization
      2023-08-25
      回复
    • BOBO
      BOBO
      2023-08-25
      而且,从实战来看,如果过测试过程中,频发拒绝/不统一,有时候返回回到授权页面,就是不弹框。但是onNeedPrivacyAuthorization触发规则没问题,就是页面调用隐私接口的时候才去触发 onNeedPrivacyAuthorization
      2023-08-25
      回复
    • xx
      xx
      2023-08-25回复BOBO
      我的onNeedPrivacyAuthorization触发了 点击确认回调函数不执行咋回事
      2023-08-25
      回复
    • okkk
      okkk
      2023-08-28回复BOBO
      那比如进入页面就获取地理位置这种功能后续是不是得改成手动触发获取位置了?
      2023-08-28
      回复
    • BOBO
      BOBO
      2023-08-28回复okkk
      这个流程没变化吧。如果说变化也就是说。你进入页面不能先调用获取位置的隐私接口了。要先调用判断用户是否授权的接口。跟进这个接口的返回来判断执行弹框还是调用隐私接口。
      2023-08-28
      回复
  • 2023-08-18
    let resolvePrivacyAuthorization: (arg0: { buttonId: string, event: string }) => void这个这个函数这么写报错,咋弄?
    
    2023-08-18
    有用
    回复
  • 小慧
    小慧
    2023-08-17

    亲,这个有完整的代码么,我不是很明白,在什么时候会显示这个弹窗。

    比如在调用getLocation时,会自动触发onNeedPrivacyAuthorization吗,但是我尝试也没有触发啊。

    2023-08-17
    有用
    回复 2
  • 李林
    李林
    2023-08-16

    有用

    2023-08-16
    有用
    回复
登录 后发表内容