评论

uni-app 微信小程序隐私协议开发实践

本文介绍了2023年uni-app微信小程序隐私保护指引的开发实践。包括配置、接口使用和官方示例等内容,帮助开发者应对新的隐私保护要求。

背景

2023 年 08 月 10 日,微信团队发布了关于微信小程序隐私保护指引设置的公告:自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者,微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则后,方可调用微信提供的隐私接口。这篇公告发布之后,引发了微信社区的广泛不满和抱怨。许多开发者抱怨称,相关文档难以理解,微信偷偷将相关实现回退导致开发进度受阻后无法进行调试,而微信相关的代码逻辑也比较混乱。

2023 年 08 月 22 日微信官方又偷偷更新了相关的文档,接口可以正常调试了,同时官方也给出了相关的Demo,所以我们又可以开始心不甘情不愿开开心心地调试了。

微信官方文档及公告地址

关于小程序隐私保护指引设置的公告

隐私相关接口

微信小程序隐私协议开发指南

更新用户隐私保护指引

小程序管理员或开发者可以根据具体小程序涉及到的隐私相关接口来更新微信小程序后台的用户隐私保护指引,更新并审核通过后就可以进行相关的开发调试工作。

需要注意的是,仅有在指引中声明所处理的用户信息,才可以调用平台提供的对应接口或组件。若未声明,对应接口或组件将直接禁用

开发指南解读

开发调试配置

参考 微信小程序隐私协议开发指南中的介绍

目前 getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明:

  • 在 2023 年 9 月 15 号之前,在 app.json 中配置 "__usePrivacyCheck__": true 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。

  • 在 2023 年 9 月 15 号之后,不论 app.json 中是否有配置 usePrivacyCheck,隐私相关功能都会启用。

所以在基于uni-app开发时,我们在 2023 年 9 月 15 号之前进行相关开发调试则需要在manifest.json文件mp-weixin中添加"__usePrivacyCheck__": true

微信官方 Demo

微信官方给出了 4 个 Demo,可以覆盖大多数的开发场景,其内容主要就是getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize这三个接口的组合使用。

Demo 解读

Demo1

Demo1 仅使用wx.getPrivacySetting接口查询隐私授权情况,在needAuthorizationtrue时主动打开授权弹框。

Demo2

Demo2 使用wx.onNeedPrivacyAuthorization接口监听隐私接口需要用户授权事件,当需要用户进行隐私授权时会触发该事件,与此同时此时打开授权弹框。

Demo3

Demo3 使用wx.onNeedPrivacyAuthorization接口监听隐私接口需要用户授权事件,使用wx.requirePrivacyAuthorize模拟隐私接口调用,所以 Demo3 不需要用户真的进行隐私授权操作,就可以主动打开授权弹框。

Demo4

Demo4 与 Demo2 的逻辑基本上一致,针对tabbar切换场景增加了打开授权弹框的同时关闭其他 tabbar 已打开授权弹框的逻辑。

Demo 总结

我们可以根据具体的场景来参考 demo 组合使用getPrivacySettingonNeedPrivacyAuthorizationrequirePrivacyAuthorize接口进行开发,比如某个页面需要上传图片,就需要使用wx.chooseImagewx.chooseMedia接口,这时候我们的场景和 Demo2 基本上是一致的,在用户点击选择图片的按钮时,就可以触发wx.onNeedPrivacyAuthorization并打开授权弹框。

实践

推荐使用组件ws-wx-privacy 微信隐私保护弹出框,支持vue2和vue3

这里我们是以组件的形式提供了授权弹框,监听页面中用户调用隐私授权接口,开发者将组件引入页面后可以自行选择主动触发或被动触发。

 
<template>
  <view>
  <!-- #ifdef MP-WEIXIN -->
  <ws-wx-privacy
    id="privacy-popup"
    @disagree="handleDisagree"
    @agree="handleAgree"
    title="用户隐私保护提示"
    desc="感谢您使用本应用,您使用本应用的服务之前请仔细阅读并同意"
    protocol="《用户隐私保护指引》"
    subDesc="。当您点击同意并开始时用产品服务时,即表示你已理解并同意该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法使用相应服务。"
  ></ws-wx-privacy>
  <!-- #endif -->
  </view>
</template>
<script>

export default {
  methods: {
    handleDisagree() {
      // 处理用户不同意隐私协议的逻辑
    },
    handleAgree() {
      // 处理用户同意隐私协议的逻辑
    }
  }
}
</script>

推荐使用组件ws-wx-privacy 微信隐私保护弹出框,支持vue2和vue3

相关文章

支持多平台小程序的uni-app持续集成工具

基于vue3的uni-app路由库uni-mini-router助你实现跳转、传参、拦截等路由功能

前端代码提交规范

UNI-APP组件库推荐

Wot Design Uni | 一个参照Wot-design打造的uni-app组件库

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

2 个评论

  • Q1an
    Q1an
    2023-09-15

    uni项目manifest.json文件mp-weixin中添加"__usePrivacyCheck__": true就可以了吗,还要做其他逻辑适配吗

    2023-09-15
    赞同
    回复
  • hours
    hours
    2023-09-07

    在 2023 年 9 月 15 号之前,在 app.json 中配置 "__usePrivacyCheck__": true 后,会启用隐私相关功能,请问下生产环境加了配置也会启用相关功能吗

    2023-09-07
    赞同
    回复 3
    • 请教我茴字的四种写法
      请教我茴字的四种写法
      2023-09-08
      目前看,体验版会生效,发布提审后不会
      2023-09-08
      回复
    • 牛奶
      牛奶
      2023-09-22回复请教我茴字的四种写法
      这个隐私协议授权我的体验版生效,正式版不会主动触发,请问什么情况
      2023-09-22
      回复
    • 牛奶
      牛奶
      2023-09-22回复牛奶
      代码是放在app.js的onLaunch方法里
      2023-09-22
      回复
登录 后发表内容