背景
2023 年 08 月 10 日,微信团队发布了关于微信小程序隐私保护指引设置的公告:自2023年9月15日起,对于涉及处理用户个人信息的小程序开发者,微信要求,仅当开发者主动向平台同步用户已阅读并同意了小程序的隐私保护指引等信息处理规则后,方可调用微信提供的隐私接口。
这篇公告发布之后,引发了微信社区的广泛不满和抱怨。许多开发者抱怨称,相关文档难以理解,微信偷偷将相关实现回退导致开发进度受阻后无法进行调试,而微信相关的代码逻辑也比较混乱。
2023 年 08 月 22 日微信官方又偷偷更新了相关的文档,接口可以正常调试了,同时官方也给出了相关的Demo,所以我们又可以开始心不甘情不愿开开心心地调试了。
微信官方文档及公告地址
更新用户隐私保护指引
小程序管理员或开发者可以根据具体小程序涉及到的隐私相关接口来更新微信小程序后台的用户隐私保护指引
,更新并审核通过后就可以进行相关的开发调试工作。
需要注意的是,仅有在指引中声明所处理的用户信息,才可以调用平台提供的对应接口或组件。若未声明,对应接口或组件将直接禁用
开发指南解读
开发调试配置
参考 微信小程序隐私协议开发指南中的介绍
目前 getPrivacySetting
、onNeedPrivacyAuthorization
、requirePrivacyAuthorize
等接口目前可以正常接入调试。调试说明:
-
在 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
-
demo1: 演示使用
wx.getPrivacySetting
和<button open-type="agreePrivacyAuthorization">
在首页处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/gi71sGm67hK0 -
demo2: 演示使用
wx.onNeedPrivacyAuthorization
和<button open-type="agreePrivacyAuthorization">
在多个页面处理隐私弹窗逻辑,同时演示了如何处理多个隐私接口同时调用。 https://developers.weixin.qq.com/s/4X7yyGmQ7EKp -
demo3: 演示
wx.onNeedPrivacyAuthorization
、wx.requirePrivacyAuthorize
、<button open-type="agreePrivacyAuthorization">
和<input type="nickname">
组件如何结合使用 https://developers.weixin.qq.com/s/jX7xWGmA7UKa -
demo4: 演示使用
wx.onNeedPrivacyAuthorization
和<button open-type="agreePrivacyAuthorization">
在多个 tabBar 页面处理隐私弹窗逻辑 https://developers.weixin.qq.com/s/g6BWZGmt7XK9
微信官方给出了 4 个 Demo,可以覆盖大多数的开发场景,其内容主要就是getPrivacySetting
、onNeedPrivacyAuthorization
、requirePrivacyAuthorize
这三个接口的组合使用。
Demo 解读
Demo1
Demo1 仅使用wx.getPrivacySetting
接口查询隐私授权情况,在needAuthorization
为true
时主动打开授权弹框。
Demo2
Demo2 使用wx.onNeedPrivacyAuthorization
接口监听隐私接口需要用户授权事件,当需要用户进行隐私授权时会触发该事件,与此同时此时打开授权弹框。
Demo3
Demo3 使用wx.onNeedPrivacyAuthorization
接口监听隐私接口需要用户授权事件,使用wx.requirePrivacyAuthorize
模拟隐私接口调用,所以 Demo3 不需要用户真的进行隐私授权操作,就可以主动打开授权弹框。
Demo4
Demo4 与 Demo2 的逻辑基本上一致,针对tabbar
切换场景增加了打开授权弹框的同时关闭其他 tabbar 已打开授权弹框的逻辑。
Demo 总结
我们可以根据具体的场景来参考 demo 组合使用getPrivacySetting
、onNeedPrivacyAuthorization
、requirePrivacyAuthorize
接口进行开发,比如某个页面需要上传图片,就需要使用wx.chooseImage
或wx.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
相关文章
基于vue3的uni-app路由库uni-mini-router助你实现跳转、传参、拦截等路由功能
uni项目在
manifest.json
文件mp-weixin
中添加"__usePrivacyCheck__": true就可以了吗,还要做其他逻辑适配吗
在 2023 年 9 月 15 号之前,在 app.json 中配置
"__usePrivacyCheck__": true
后,会启用隐私相关功能,请问下生产环境加了配置也会启用相关功能吗