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

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


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

根据微信小程序官方文档,咱们可以知道在小程序的按钮组件上的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⭐!

相关推荐
易安说AI6 小时前
Ralph Loop 让Claude无止尽干活的牛马...
前端·后端
webYin7 小时前
解决 Uni-App 运行到微信小程序时 “Socket合法域名校验出错” 问题
微信小程序·小程序·uni-app
颜酱7 小时前
图结构完全解析:从基础概念到遍历实现
javascript·后端·算法
失忆爆表症8 小时前
05_UI 组件库集成指南:Shadcn/ui + Tailwind CSS v4
前端·css·ui
小迷糊的学习记录8 小时前
Vuex 与 pinia
前端·javascript·vue.js
发现一只大呆瓜8 小时前
前端性能优化:图片懒加载的三种手写方案
前端·javascript·面试
不爱吃糖的程序媛8 小时前
Flutter 与 OpenHarmony 通信:Flutter Channel 使用指南
前端·javascript·flutter
利刃大大8 小时前
【Vue】Element-Plus快速入门 && Form && Card && Table && Tree && Dialog && Menu
前端·javascript·vue.js·element-plus
NEXT068 小时前
AI 应用工程化实战:使用 LangChain.js 编排 DeepSeek 复杂工作流
前端·javascript·langchain
念风零壹9 小时前
AI 时代的前端技术:从系统编程到 JavaScript/TypeScript
前端·ai