评论

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

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

项目链接: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  
点赞 24
收藏
评论

77 个评论

  • 星空
    星空
    2023-09-04
    skipRead="{{true}}"这个在组件里怎么没看到接收啊,这个是在哪判断的啊?
    
    2023-09-04
    赞同
    回复 1
    • momo
      momo
      2023-09-04
      该参数去掉了,社区文章修改一次审核好几天,审核期间无法查看就再没修改文章中的内容
      2023-09-04
      回复
  • *^_^*
    *^_^*
    2023-09-04

    我居然没找到 uni-app 直接退出小程序的方法,哭

    2023-09-04
    赞同
    回复
  • 残留の笑颜
    残留の笑颜
    2023-09-03

    uniapp能用吗?

    2023-09-03
    赞同
    回复
  • 星辰大海
    星辰大海
    2023-09-02

    有个疑问,拒绝的时候直接退出小程序吗?这样用户体验是不是不太好?我的做法是根据官方的例子,不管是同意还是拒绝都给父组件返回信息,拒绝返回'disagree',同意返回'agree',用户下次点击的时候根据返回信息判断上次是否已同意,如果一直拒绝则始终返回'disagree',用户无法继续后面的操作, 只有同意才继续后面的业务逻辑。

    2023-09-02
    赞同
    回复 1
    • momo
      momo
      2023-09-03
      可以自行修改哈,这样写会让组件使用起来更复杂,前面考虑的是最简单粗暴的方式,也可以明确告知用户不同意协议无法使用,另外不返回disagree对下次点击无影响
      2023-09-03
      回复
  • Jimmy李
    Jimmy李
    2023-09-02

    为什么真机调试模式也出来这个页面,弹框没出来,我应该怎么操作让弹框出来

    2023-09-02
    赞同
    回复 1
    • momo
      momo
      2023-09-02
      15号前要加__usePrivacyCheck__、 基础库版本 2.32.3以上
      2023-09-02
      1
      回复
  • 哈哈
    哈哈
    2023-09-01

    弹框组件引入,在页面用wx:if判断,弹不出怎么回事

    2023-09-01
    赞同
    回复 1
    • momo
      momo
      2023-09-01
      如果是文章中项目中组件,引入即可,组件自动判断,不需要再在页面中使用  wx:if 判断
      2023-09-01
      回复
  • Arvin
    Arvin
    2023-09-01

    __usePrivacyCheck__ 添加设置以后,选取本地图片之类的功能没反应,即使已经申请了 隐私权限

    2023-09-01
    赞同
    回复 4
    • momo
      momo
      2023-09-01
      打印错误信息,里面会有详细的说明
      2023-09-01
      回复
    • Arvin
      Arvin
      2023-09-01回复momo
      没有错误信息,就是点击没效果!添加__usePrivacyCheck__之前,还可以选择相册中图片 作为头像上传
      2023-09-01
      回复
    • Arvin
      Arvin
      2023-09-01回复momo
      reportRealtimeAction:fail not support  过了十几秒 才打印这个
      2023-09-01
      回复
    • momo
      momo
      2023-09-01回复Arvin
      这个错误应该跟 usePrivacyCheck 无关
      2023-09-01
      回复
  • 尖叫蕈
    尖叫蕈
    2023-09-01

    __usePrivacyCheck__: true, 为啥我开启后,开发者工具清除授权缓存后还能授权。手机预览倒是正常的。开发者工具是不是有问题

    2023-09-01
    赞同
    回复 2
    • momo
      momo
      2023-09-01
      是的,可以切换最新基础库试试
      2023-09-01
      1
      回复
    • 尖叫蕈
      尖叫蕈
      2023-09-01回复momo
      嗯,切最新库可以,晕倒
      2023-09-01
      回复
  • 暧迷路
    暧迷路
    2023-09-01

    大佬,问下能否设计成插件方式引入

    2023-09-01
    赞同
    回复 3
    • momo
      momo
      2023-09-01
      下午研究一下
      2023-09-01
      回复
    • momo
      momo
      2023-09-01
      微信隐私相关接口不支持插件
      2023-09-01
      1
      回复
    • 暧迷路
      暧迷路
      2023-09-01回复momo
      是的,那目前只能组件方式引入了
      2023-09-01
      回复
  • 海越
    海越
    2023-08-31

    做了一半发现不对劲,我小程序用了5个隐私权限涉及20个页面,是每个页面底部都要引入这个组件吗?

    2023-08-31
    赞同
    回复 4

正在加载...

登录 后发表内容