评论

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

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

项目链接: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 个评论

  • 🐑 
    🐑 
    2023-09-10

    感谢楼主的奉献,已经用上了楼主的组件,测试通过。

    另外XXXXX一下微信的隐私产品经理,这家伙是应届毕业生么?到底是怎么想的。从产品角度来说,明明可以官方做的东西,非让我们下面各种搞,交互不同意,且授权隐私还出现了重复的问题,真是一大奇葩之谜之操作。你搞这么个谜之操作的东西也就算了,文档还写的一坨一坨的,没有楼主奉献的组件,有的折腾了

    最后,再次感谢楼主,YYDS

    2023-09-10
    赞同 5
    回复 3
    • momo
      momo
      2023-09-10
      这件事由官方来做确实最合适
      2023-09-10
      2
      回复
    • 🐵 🐵 🐵
      🐵 🐵 🐵
      2023-09-26
      哈哈哈,官方已经做了, 不用开发者实现了
      2023-09-26
      回复
    • 努力de
      努力de
      2023-11-05回复🐵 🐵 🐵
      但是电脑端的不弹,还是暂时用自定义的
      2023-11-05
      回复
  • 淦天雷
    淦天雷
    2023-08-29

    感谢,已引入项目中使用

    2023-08-29
    赞同 4
    回复 15
    • 旧识_
      旧识_
      2023-08-30
      之前的可以获取成功嘛?我之前的位置就直接失败了,
      2023-08-30
      回复
    • 阿平
      阿平
      2023-09-05回复旧识_
      之前的需要用onNeedPrivacyAuthorization监听到, 再点击成功后, 调用resolve方法, 之前的就能获取到了
      2023-09-05
      回复
    • 🐠
      🐠
      2023-09-06
      请问下 这个怎么搞 我没弄明白
      2023-09-06
      回复
    • 淦天雷
      淦天雷
      2023-09-08回复🐠
      把楼主封装的组件放到你项目里,直接在用到隐私接口的页面引入这个组件就行了
      2023-09-08
      回复
    • 刹那永恒
      刹那永恒
      2023-09-11回复淦天雷
      直接在首页引用一次就可以了吧
      2023-09-11
      回复
    查看更多(10)
  • 万好
    万好
    2023-09-06

    我用真机调试返回的needAuthorization一直是false,也配置了"__usePrivacyCheck__": true,咋回事呢?

    2023-09-06
    赞同 3
    回复 1
    • momo
      momo
      发表于移动端
      2023-09-06
      按文中说明清除授权后重新打开
      2023-09-06
      回复
  • Sgt.
    Sgt.
    2023-09-13

    给在taro3中使用这个组件的同学提前踩个坑:

    1.全局引用组件时:需使用 <privacy /> (小写)

    2.组件内 pageLifetimes 中的生命周期不会触发,可以使用 attached()

    2023-09-13
    赞同 2
    回复
  • 嗯哼
    嗯哼
    2023-09-08

    uniapp来一个

    2023-09-08
    赞同 1
    回复 5
    • 巴菲剑📼
      巴菲剑📼
      2023-09-13
      uniapp自己手动改下就可以了 很快的
      2023-09-13
      回复
    • 十
      2023-09-14
      uniapp的自己把组件改成vue的,改一下引用,OK搞定
      2023-09-14
      回复
    • Yuhero
      Yuhero
      2023-09-14回复巴菲剑📼
      uni的还要page引入组件吗?还是直接放进components里 在需要的页面引入调用就行了吗
      2023-09-14
      回复
    • ℳঞ未来ꦿᩚ像个迷 ໌້ᮨ꧔ꦿ᭄
      ℳঞ未来ꦿᩚ像个迷 ໌້ᮨ꧔ꦿ᭄
      2023-09-14
      我也想知道
      2023-09-14
      回复
    • 搁、浅
      搁、浅
      2023-09-15
      直接把原生的组件放在wxcomponents里面就行了,不需要写vue的版本。taro同理
      2023-09-15
      回复
  • 哈哈
    哈哈
    2023-09-01

    大佬,如果是在几个tabbar页面都调用了隐私接口,那这几个页面都要引入这个组件吗

    2023-09-01
    赞同 1
    回复 4
    • momo
      momo
      2023-09-01
      是的,可以全局引入
      2023-09-01
      1
      回复
    • Harry🐼🐼
      Harry🐼🐼
      2023-09-04
      哪个页面用了隐私接口,哪个页面就要引入隐私组件,比如你4个页面都用了,那么4个页面都要引入组件,用户只需要同意一次隐私协议,全部隐私接口都可以调用的了
      2023-09-04
      回复
    • Jason🌾
      Jason🌾
      2023-09-06回复Harry🐼🐼
      大佬,请问下,用户授权过隐私保护指引,如果用户删除小程序后,一定要用户重新再授权么
      2023-09-06
      回复
    • momo
      momo
      发表于移动端
      2023-09-06回复Jason🌾
      是的
      2023-09-06
      1
      回复
  • 壁虎
    壁虎
    2023-12-20

    大佬们,想一下,配置了"__usePrivacyCheck__": true,官方默认的隐私弹窗也会弹出来,会和我自定义的弹窗同时弹出,这种情况应该怎么解决呢

    2023-12-20
    赞同
    回复
  • NAME
    NAME
    2023-10-31

    请问这个隐私弹窗是没生效么?我看小程序都还没有隐私弹窗

    2023-10-31
    赞同
    回复
  • 那只是梦cium
    那只是梦cium
    2023-10-17

    我以为这个隐私协议弹窗在用户同意之后,里面写的那些权限就不用再弹出来让用户再确认了,结果还是要用户再确认一次,搞得我首页现在要用户同意两次

    2023-10-17
    赞同
    回复 2
    • 努力de
      努力de
      2023-11-05
      是这样的,官方的弹窗只弹一次,自定义的每次都弹
      2023-11-05
      回复
    • 野葛根
      野葛根
      2023-12-14
      为什么我的弹窗还出来
      2023-12-14
      回复
  • 🌻
    🌻
    2023-09-22

    大佬,弹窗我配置在了第三个页面。如果"__usePrivacyCheck__": true的话模拟器就一直在第一个页面识别身份中。但是"__usePrivacyCheck__": false的话就可以进入第三个页面。也没有什么报错提示,请问大概是哪方面原因,谢谢

    2023-09-22
    赞同
    回复

正在加载...

登录 后发表内容