评论

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

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

项目链接: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-08-30

    大佬你好,如果首页有调用了隐私接口,然后在其他页面也有调用了隐私接口。这种情况是不是只要在首页增加弹窗,同意之后所有页面都可以调用隐私接口,而不只是仅仅首页可以?


    2023-08-30
    赞同
    回复 4
    • momo
      momo
      2023-08-30
      建议是所有用到隐私接口的页面都放上组件,因为用户可能是通过分享等直接进入的不是首页
      2023-08-30
      回复
    • 中投靓仔
      中投靓仔
      2023-08-30回复momo
      okok,谢谢大佬!
      2023-08-30
      回复
    • 吹 起 来 了
      吹 起 来 了
      2023-09-05回复momo
      那有没有什么办法是不管以哪种方式进入小程序,都调用一个隐私接口弹出弹窗?
      2023-09-05
      回复
    • momo
      momo
      2023-09-05回复吹 起 来 了
      在所有能直接进入的页面都放上组件
      2023-09-05
      回复
  • 自勉
    自勉
    2023-08-30

    大家有这个提示么

    2023-08-30
    赞同
    回复 2
    • momo
      momo
      2023-08-30
      不影响,忽略即可,基础库 2.33.0以上
      2023-08-30
      回复
    • 自勉
      自勉
      2023-08-30回复momo
      好的,谢谢
      2023-08-30
      回复
  • 不在
    不在
    2023-08-30

    uni里面引入有方法吗

    2023-08-30
    赞同
    回复 5
    • momo
      momo
      2023-08-30
      未使用
      2023-08-30
      回复
    • Monster
      Monster
      2023-08-30回复momo
      uniapp开发 可以直接引入吗
      2023-08-30
      回复
    • momo
      momo
      2023-08-30回复Monster
      最近几年都没用过uniapp,未测试,你可以自己试一下
      2023-08-30
      回复
    • 不在
      不在
      2023-08-31回复Monster
      uni方法不支持这几个方法  大概逻辑还是可以用的
      2023-08-31
      回复
    • DC
      DC
      2023-08-31回复Monster
      https://ext.dcloud.net.cn/plugin?id=14288
      2023-08-31
      1
      回复
  • 淦天雷
    淦天雷
    2023-08-30

    楼主你好,wx.getPrivacySetting 基础库 2.32.3 开始支持,低版本需做兼容处理,我们需要加一下这个api的if判断吧,客户端的基础库低于这个版本时会报错,else可以不加,if判断是不是有必要

    2023-08-30
    赞同
    回复 3
    • momo
      momo
      2023-08-30
      还不了解官方政策,得 9 月 15 号以后看,官方描述好像是 15 号以后所有版本基础库都会上不确定是否还有处理的必要,我是在公众平台后台直接设置了最低基础库版本为 2.33.0,小程序官方自动就给处理了
      2023-08-30
      回复
    • 淦天雷
      淦天雷
      2023-08-30回复momo
      ok,了解了,谢谢
      2023-08-30
      回复
    • *^_^*
      *^_^*
      2023-08-30
      好的哦,感谢
      2023-08-30
      回复
  • *^_^*
    *^_^*
    2023-08-30

    大佬,我们的小程序是共享骑行,首页就是地图需要定位才能骑行,请问是不是直接在首页弹比较好啊?不同意就退出小程序

    2023-08-30
    赞同
    回复 2
    • momo
      momo
      2023-08-30
      建议是,如果打开直接调用隐私接口,可能还需要在调用前加一下弹窗
      2023-08-30
      回复
    • *^_^*
      *^_^*
      2023-08-30回复momo
      好的哦,感谢
      2023-08-30
      回复
  • 陆大师
    陆大师
    发表于小程序端
    2023-08-30

    如果页面在onload就调用接口,弹窗没同意,就触发就执行接口了要怎么整。

    2023-08-30
    赞同
    回复 2
    • momo
      momo
      2023-08-30
      可以单独处理一下,调用隐私接口前弹窗
      2023-08-30
      回复
    • 陆大师
      陆大师
      发表于小程序端
      2023-08-31回复momo

      感谢,已解决!

      2023-08-31
      回复
  • roadMaster
    roadMaster
    2023-08-30

    要不要判断一下基础组件的版本号,低于2.32是不是直接不调用隐私接口了?

    2023-08-30
    赞同
    回复 1
    • momo
      momo
      2023-08-30
      官方政策说明不够详细,得 9 月 15 号以后看,官方描述好像是 15 号以后所有版本基础库都会上不确定是否还有处理的必要,我是在公众平台后台直接设置了最低基础库版本为 2.33.0,小程序官方自动就给处理了
      2023-08-30
      回复
  • Sebastian
    Sebastian
    2023-08-30

    大佬这样写第一次拒绝后,以后每次进入到页面都会弹出,是否太频繁了

    2023-08-30
    赞同
    回复 3
    • momo
      momo
      2023-08-30
      目前逻辑就是不同意不允许使用小程序,可以在组件中修改,主要用户拒绝后用到了隐私接口的地方没有任何提示,直接是没有任何反应,后续导致一系列问题
      2023-08-30
      回复
    • 大嘴猴🐒
      大嘴猴🐒
      2023-08-30回复momo
      不同意不允许使用小程序,微信会不会不允许这样操作
      2023-08-30
      回复
    • momo
      momo
      2023-08-30回复大嘴猴🐒
      应该不会,市面上几乎所有的APP都是不同意协议无法进入,扫项目链接中最后的码可以在线预览这是我们已经上架的小程序,不过也不能说的绝对,比较微信这边朝令夕改是常有的事
      2023-08-30
      回复
  • 流星💫
    流星💫
    2023-08-29

    只要在页面当中涉及到 隐私接口 的,都要在该页面中引用这个弹窗组件?

    2023-08-29
    赞同
    回复 6
    • momo
      momo
      2023-08-29
      建议是,目前最简单粗暴并有效的方案
      2023-08-29
      回复
    • 流星💫
      流星💫
      2023-08-29回复momo
      不同意直接退出小程序,审核的时候会不会被打回啊
      2023-08-29
      回复
    • momo
      momo
      2023-08-29回复流星💫
      不会,很多人都用了这个方案,也可以按需求自己修改,如果用户拒绝后继续使用小程序用到了隐私接口,直接没有任何反应
      2023-08-29
      回复
    • 流星💫
      流星💫
      2023-08-30回复momo
      这样的话, 没必要用wx.onNeedPrivacyAuthorization这个了吧?
      2023-08-30
      回复
    • 流星💫
      流星💫
      2023-08-30回复momo
      还有就是<button open-type="getPhoneNumber"></button> 这种怎么去处理啊?
      2023-08-30
      回复
    查看更多(1)
  • 阿白
    阿白
    2023-08-29

    这里的判断如果初始化了多个tabbar页面后(这几个tabbar页面都有隐私保护指引弹窗),同意了一个弹窗后,其他页面的弹窗还在。把这个判断去掉或者用返回的`errMsg`来判断会不会更好。

    这样再次访问初始化过的tabbar隐私保护指引弹窗就自动不显示了

    2023-08-29
    赞同
    回复 2
    • momo
      momo
      2023-08-29
      确实未考虑到这类情况,已采纳你的方案
      2023-08-29
      回复
    • 西门紫凌
      西门紫凌
      2023-09-12回复momo
      大佬 我一直报错无效的 app.json ["__usePrivacyCheck__"]、app.json ["navigateToMiniProgramAppIdList"]这是为什么 基础库版本已经升级了
      2023-09-12
      回复

正在加载...

登录 后发表内容