用空闲时间做了一个小程序-用户隐私协议
站长
· 阅读数 11
一直在摸鱼中赚钱的大家好呀~
大家一定都有收到关于微信小程序隐私保护指引设置的公告。涉及处理用户个人信息的小程序,需通过弹窗等明显方式提示用户阅读隐私政策等收集使用规则。说白了就是要需要用户明确同意用户隐私协议才能调用微信提供的部分接口。 这是在变着法的让我迭代开发的小程序啊,为了能让用户能正常使用只能浅做一下。本来这部分内容是和上一篇的小程序的文章写在一起,但是怕篇幅太长所以拆开写了。
根据微信小程序官方文档,咱们可以知道在小程序的按钮组件上的open-type
属性增加了一个agreePrivacyAuthorization
的值,当设置了这个属性的按钮被用户点击了就能正常使用到涉及到的相关接口,除了下图中展示的还有文件上传等接口。
首先需要到微信公众平台-设置-服务内容声明
中更新用户隐私保护指引
,将需要使用到的接口都申明出来,然后提交审核。我这边只用到了用户信息和剪切板。审核通过之后并不会直接就能使用,还需要时间同步:[fail api scope is not declared in the privacy agreement]遇到了这个问题的话,稍微等等。
我的实现的思路是通过wx.getPrivacySettingAPI判断用户是否需要授权,如果需要则弹出隐私协议的弹窗,让用户点击已经设置了 open-type="agreePrivacyAuthorization"
的按钮组件,点击完成之后就可以关闭弹窗。相关接口用户也就可以正常使用了。
当然也是可以通过wx.onNeedPrivacyAuthorizationAPI来监听用户使用到相关API来弹出隐私协议弹窗让用户来点击。贴出我的相关代码
Component({
options: {
addGlobalClass: true
},
properties: {
},
data: {
title: '隐私协议',
value: `根据微信用户隐私保护协议规定,需要你同意相关隐私协议才能继续部分功能!同意过后:\n·\t可以使用你的相册(仅写入)权限进行图片保存\n·\t可以收集你的微信昵称、头像\n·\t可以收集你选中的照片或视频信息进行上传\n·\t可以取你的剪切板进行内容复制`,
show: false
},
lifetimes: {
attached: function() {
wx.getPrivacySetting({
success: (res) => {
if (res.needAuthorization) {
this.popupHandle()
}
}
})
this.listenHandle()
}
},
methods: {
popupHandle() {
this.setData({
show: !this.data.show
})
},
listenHandle() {
if (wx.onNeedPrivacyAuthorization) {
wx.onNeedPrivacyAuthorization((resolve, eventInfo) => {
this.popupHandle()
this.resolvePrivacyAuthorization = resolve
})
}
},
agreeHandle() {
if (this.resolvePrivacyAuthorization) {
this.resolvePrivacyAuthorization({ buttonId: 'agree-button', event: 'agree' })
}
this.popupHandle()
}
}
})
让人气愤的是急急忙忙的做好了隐私协议相关的内容,于9月14日微信又发布了个通知说不用改也能兼容,你说气人不气人!
感谢大家观看我今日的水文,文笔实在是不行,欢迎鱼友们给小程序提提意见,或者有什么有趣的想法也可以与楼主提一提。最后希望大家到我的小程序来多坐坐。
最后的最后,如果觉得文章不错的话,可以给小生的几个开源项目点个Star⭐!
- 基于 Vue3 + Element-plus 管理后台基础功能框架
- 预览:admin.gumingchen.icu
- Github:github.com/gmingchen/a…
- Gitee:gitee.com/shychen/agi…
- 基础版后端:github.com/gmingchen/j…
- 文档:admin.gumingchen.icu/doc/
- 基于 Vue3 + Element-plus + websocket 即时聊天系统
- 基于 node 开发的后端服务:github.com/gmingchen/n…