用空闲时间做了一个小程序-用户隐私协议

一直在摸鱼中赚钱的大家好呀~


大家一定都有收到关于微信小程序隐私保护指引设置的公告。涉及处理用户个人信息的小程序,需通过弹窗等明显方式提示用户阅读隐私政策等收集使用规则。说白了就是要需要用户明确同意用户隐私协议才能调用微信提供的部分接口。 这是在变着法的让我迭代开发的小程序啊,为了能让用户能正常使用只能浅做一下。本来这部分内容是和上一篇的小程序的文章写在一起,但是怕篇幅太长所以拆开写了。

根据微信小程序官方文档,咱们可以知道在小程序的按钮组件上的open-type属性增加了一个agreePrivacyAuthorization的值,当设置了这个属性的按钮被用户点击了就能正常使用到涉及到的相关接口,除了下图中展示的还有文件上传等接口。

首先需要到微信公众平台-设置-服务内容声明中更新用户隐私保护指引,将需要使用到的接口都申明出来,然后提交审核。我这边只用到了用户信息和剪切板。审核通过之后并不会直接就能使用,还需要时间同步:[fail api scope is not declared in the privacy agreement]遇到了这个问题的话,稍微等等。

我的实现的思路是通过wx.getPrivacySettingAPI判断用户是否需要授权,如果需要则弹出隐私协议的弹窗,让用户点击已经设置了 open-type="agreePrivacyAuthorization" 的按钮组件,点击完成之后就可以关闭弹窗。相关接口用户也就可以正常使用了。

当然也是可以通过wx.onNeedPrivacyAuthorizationAPI来监听用户使用到相关API来弹出隐私协议弹窗让用户来点击。贴出我的相关代码

js 复制代码
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⭐!

相关推荐
To_OC6 小时前
写了三遍 Todo List,我终于搞懂了 React 父子组件到底怎么通信
前端·javascript·react.js
勇往直前plus6 小时前
Vue3(篇一) 核心概念——响应式模板语法与组件基础
前端·javascript·vue.js
咩咩啃树皮7 小时前
第43篇:Vue3计算属性(computed)完全精讲——缓存机制、依赖计算、业务最优解
前端·vue.js·缓存
用户938515635078 小时前
从零搭建 AI 日记助手:用 Milvus 向量数据库 + RAG 让机器读懂你的每一天
javascript·人工智能·全栈
徐小夕8 小时前
花了一周,3亿tokens,我开源了一款 Word 文档智能审查平台,文稿自动质检+可视化分析,告别低效人工审核
前端·算法·github
a1117769 小时前
坦克大战3D Three.js 3D (开源项目)
开发语言·javascript·3d
kyriewen10 小时前
别再乱用useEffect了——你写的10个里有8个不该存在
前端·javascript·react.js
Ivanqhz10 小时前
Rust &‘static str浅析
java·前端·javascript·rust
IT_陈寒11 小时前
SpringBoot这个分页坑,我踩了三天才爬出来
前端·人工智能·后端
颜酱11 小时前
05 | 召回前置准备:根据业务数据库生成各数据库(读取配置阶段)
前端·人工智能·后端