评论

一个组件解决隐私授权:小程序用户隐私保护授权弹窗组件

使用组件实现弹窗提示用户阅读隐私保护指引的功能。

项目链接:https://github.com/94xy/miniprogram-privacy

效果预览:


使用方法:

1、复制项目 component 文件夹中的 privacy 文件夹到小程序项目中的组件目录;

2 、在 page.json 中引入组件

{
  "usingComponents": {
    "Privacy": "/component/privacy/privacy"
  }
}

3 、在 page.wxml 中使用组件,需要授权显示弹窗,不需要不显示

<Privacy />

4 、可以在所有使用了隐私接口的页面都加上该组件,授权一次之后使用所有隐私接口不再需要授权


跳过阅读:

可以不阅读就点击“同意”按钮

<Privacy skipRead="{{true}}" />


流程:

  1. 页面显示时使用 wx.getPrivacySetting 接口查询是否需要授权,需要授权则显示组件;
  2. 用户点击“拒绝”直接退出小程序,用户点击“同意”关闭弹窗并同步给微信,之后可以正常使用所有隐私接口。


注意事项:

  1. 2023 年 9 月 15 号之前,默认不会启用隐私相关功能,所以检测不到需要弹窗的情况,可以在 app.json 中配置 "__usePrivacyCheck__": true 之后,接口才可以检测到是否需要弹窗。个人实际情况:我在开发者工具中配置了 "__usePrivacyCheck__": true ,needAuthorization 无论如何返回的都是 false,但在真机模拟的情况下可以返回 true
  2. 自动打开隐私保护指引界面需在「小程序管理后台」配置《小程序用户隐私保护指引》,官方用户隐私保护指引填写说明


取消授权:

  • 微信中「微信下拉-最近-最近使用的小程序」中删除小程序可取消授权。
  • 开发者工具中「清除模拟器缓存-清除授权数据」可取消授权。


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

76 个评论

  • 毕竟1米八 ¹
    毕竟1米八 ¹
    2023-09-09

    楼主,有个问题,线上发布后必须要手动删除小程序缓存重新进才能检测是否授权隐私,不可能每个用户都知道这种操作吧?有没有解决方法?

    2023-09-09
    赞同
    回复 2
    • momo
      momo
      2023-09-10
      不需要解决,组件只要检测到需要授权就会弹窗,没有弹窗表示不需要授权可以正常使用相关接口;另外隐私协议更新也可以触发重新要求授权,如果是例外情况:新版本发布后用户使用的还是旧版本可以在后台设置最低版本要求触发自动更新小程序
      2023-09-10
      回复
    • 毕竟1米八 ¹
      毕竟1米八 ¹
      2023-09-11回复momo
      谢谢解答,嗯,就是一切按api返回的结果为准。我打算设置后台最低版本库2.3+试试
      2023-09-11
      回复
  • 小熊🧸
    小熊🧸
    2023-09-09

    您好,我有一个疑虑,望解答。

    刚进页面的时候,弹窗同意后,在右上角点击设置,把位置信息改成不允许,那么下次进首页或者进入下一个有用定位的api页面时,这个框还弹出吗?


    2023-09-09
    赞同
    回复 2
    • momo
      momo
      2023-09-09
      建议自己试一下,我这边没有定位相关接口权限无法测试
      2023-09-09
      回复
    • 小熊🧸
      小熊🧸
      2023-09-11回复momo
      手动关闭后 再进去另一个需要定位的页面,没有弹窗弹出了。反正我测试是这样
      2023-09-11
      回复
  • ...
    ...
    发表于移动端
    2023-09-07
    这个需要对使用者的微信版本有要求,需要处理吗?开发之后,不是最新版本跳不出授权弹窗,会影响后续隐私接口使用吗
    2023-09-07
    赞同
    回复 1
    • momo
      momo
      2023-09-07
      组件中已经处理了,直接使用组件即可,不会影响
      2023-09-07
      回复
  • Y.
    Y.
    2023-09-07

    你好,可以在一个页面(比如首页)弹出隐私授权弹窗,用户同意授权后,小程序中所有用到隐私相关的地方都可以正常使用吗?还是说必须在每个涉及隐私相关的页面都要弹这个弹窗?

    2023-09-07
    赞同
    回复 1
    • momo
      momo
      2023-09-07
      用到隐私接口的都需要,除非用户永远只能从你这个页面进入小程序,其它页面不会有分享这些
      2023-09-07
      回复
  • 蒙塵
    蒙塵
    2023-09-06

    感觉大佬的组件。只要是这里涉及的接口都要加吗?https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/miniprogram-intro.html

    2023-09-06
    赞同
    回复 3
    • momo
      momo
      发表于移动端
      2023-09-06
      2023-09-06
      回复
    • xiecg
      xiecg
      2023-09-08回复momo
      文档里的 wx.getUserInfo (已回收),请问这里的已回收是什么意思?我们小程序只用了一个 wx.getUserInfo,也需要加隐私保护吗 ?
      2023-09-08
      回复
    • 一叶扁舟
      一叶扁舟
      2023-09-08回复xiecg
      wx.getUserInfo接口已经废弃了吧
      2023-09-08
      回复
  • 青春前行
    青春前行
    2023-09-06

    点击了拒绝按钮 这样体验会不会不太好 审核不通过 如何在调起弹框呢 楼主

    2023-09-06
    赞同
    回复 1
    • momo
      momo
      2023-09-06
      这个问题已经讨论过多次,暂不考虑修改
      2023-09-06
      回复
  • Vintage
    Vintage
    2023-09-06

    这个库版本,我用caniuse返回是false.,直接干脆 !! 判断api能不能用,省去复制版本对比代码。不知道你那边判断版本的代码能不能这样去写

    2023-09-06
    赞同
    回复 2
    • momo
      momo
      2023-09-06
      微信canIUse有问题,比如 2.32.3 可以使用getPrivacySetting,但wx.canIUse('getPrivacySetting')返回的是 false
      2023-09-06
      回复
    • Vintage
      Vintage
      2023-09-06回复momo
      是的,所以我想问问直接两个感叹号判断api是否可用,想问问这样做是否合理?
      2023-09-06
      回复
  • 程亮
    程亮
    2023-09-06

    调用这个组件,小程序里面已经同意了隐私协议,接口调用还是不成功,提示

    {errMsg: "getUserProfile:fail api scope is not declared in the privacy agreement", errno: 112}

    2023-09-06
    赞同
    回复 1
    • momo
      momo
      2023-09-06
      需要先在后台隐私保护指引中声明使用了该接口
      2023-09-06
      回复
  • 🐠
    🐠
    2023-09-06

    有没有大佬 教一下怎么弄啊 我没明白怎么搞

    2023-09-06
    赞同
    回复
  • Believer
    Believer
    2023-09-06

    我看相关api在2.32.3版本库才开始支持,那么一些老手机无法升级微信,就没办法弹出隐私保护弹框,这怎么解决的?

    2023-09-06
    赞同
    回复 4
    • momo
      momo
      2023-09-06
      组件已处理,低版本不需要授权可以正常使用隐私接口
      2023-09-06
      回复
    • Believer
      Believer
      2023-09-06回复momo
      感谢回复哈。我其实就是想搞清楚对于一些低版本的微信,他们没办法弹出隐私保护提示,这个会影响他们使用相关隐私接口吗?现在没法强制所有用户升级微信,因为有些设备太久了。。。
      2023-09-06
      回复
    • Believer
      Believer
      2023-09-06回复momo
      看这个文档的「其他说明」意思应该是不会拦截接口使用😂
      2023-09-06
      回复
    • momo
      momo
      2023-09-06回复Believer
      是的,低版本直接忽略即可
      2023-09-06
      回复

正在加载...

登录 后发表内容