2023小程序隐私协议更新-不完全指北

前言

小程序这次更新隐私协议相关的政策真是恶心,但是没办法,谁让人家是tx呢,我们一些打工的也只能配合着改

首先本次修改会在2023年9月15日之后生效,建议大家赶快修改。

本次修改会影响线上的版本!!!部分小程序基础库版本低的用户除外,但基础库早晚会随着微信版本更新

感谢

首先感谢这两位老哥的文章,他们讲解的大部分的内容,小弟我只负责讲讲剩下的一些注意事项:

juejin.cn/post/727227...

juejin.cn/post/727227...

我遇到的一些坑

首先,我们修改的时候需要在app.json中添加配置,并且开发工具的基础调试库设置成2.32.3以上。 用uniapp的同学需要在manifest.json的mp-weixin中添加该配置

js 复制代码
"__usePrivacyCheck__": true,

怎么判断我的api调用失败是因为隐私政策的问题

调用api会报错,如下:

js 复制代码
chooseMedia:fail api scope is not declared in the privacy agreement

哪些api涉及用户的隐私,以及需要去微信后台配置

developers.weixin.qq.com/miniprogram...

这个链接中的api都涉及到用户的隐私,需要一个一个去代码里搜,涉及到的地方都需要同步去处理。

以下配置很重要!!!因为我某些api以前没有在这里配置,也能正常使用上线,隐私协议更新之后就不行了,现都需要同步到这里,设置的地方如下:

在微信后台-设置-基本设置-服务内容声明 ,凡是用到的隐私api相关的都需要配置。建议尽早修改,因为改了隐私协议之后,还需要微信审核

这里没有设置的涉及到隐私的api,就算同意了隐私协议,也会报错,配置好了审核通过之后,才能正常使用

全局添加弹窗,不在页面中单独修改

这个方法限用于uniapp,主要是通过wx.onNeedPrivacyAuthorization监听隐私api的使用,没有同意的话就会弹出弹窗。

因为小程序环境没有全局模板的概念,所以隐私协议的弹窗必须用到的页面都去写一次,我的方案主要是利用插件把组件代码插入到每个页面中,就省去了单独去写代码,也省的去排查哪些页面用到了隐私相关的api,优点是通用性比较高,改起来快,主要用到的插件是:vue-inset-loader 。(如果担心影响性能,vue-inset-loader 也可以单独配置插入到部分页面,具体看文档吧)

下面是流程:

  1. npm install vue-inset-loader --save-dev (如果遇到npm安装报错,是因为vue-inset-loader是基于vue-template-compiler的,如果node_modules中有vue的话,需要安装与vue-template-compiler版本号一致的vue版本)
  2. 根目录的vue.config.js中(如果没有则创建该文件)
js 复制代码
// 引入path模块
const path = require('path')

// 默认导出的对象中添加如下代码
module.export = {
    configureWebpack: {
        module: {
            rules: [
                {
                    test: /.vue$/,
                    use: {
                        // 全局注入xxx组件,注入内容是pages.json的insetLoader字段
                        // 只在mp-weixin环境生效
                        loader: path.resolve(
                            __dirname,
                            './node_modules/vue-inset-loader'
                        ),
                    },
                },
            ],
        },
    }
}
  1. 复制组件(我的隐私弹窗组件代码是直接copy的这位老哥的代码,再次感谢)到根目录下的wxcomponents(如果没有就创建该文件夹)
  2. 根目录pages.json中
js 复制代码
// pages字段同级的globalStyle添加属性--这里主要是注册全局组件
"usingComponents":{
    "user-privacy-popup": "/wxcomponents/privacy/privacy"
}

// pages字段同级添加
"insetLoader": {
    "config":{
        "user-privacy-popup": "<user-privacy-popup />"
    },
    "label": ["user-privacy-popup"],
    "rootEle": ".*"
}
  1. 重新运行小程序 、小程序开发者工具基础库调到3.0,并且配置"usePrivacyCheck": true

有问题评论区指正

谢谢

我司十几个小程序等着我改,加油吧。

相关推荐
wuhen_n12 分钟前
动态组件与 keep-alive:如何优化页面切换体验与性能?
前端·javascript·vue.js
wuhen_n14 分钟前
插槽的作用域与分发:如何让组件更灵活、可定制?
前端·javascript·vue.js
IT_陈寒22 分钟前
Vite凭什么比Webpack快10倍?5个核心优化原理大揭秘
前端·人工智能·后端
gyx_这个杀手不太冷静39 分钟前
OpenCode 进阶使用指南(第三章:MCP 集成)
前端·ai编程
摸鱼的春哥41 分钟前
你适合养龙虾🦞吗?4类人不适合2类适合
前端·javascript·后端
Moment1 小时前
Agent 开发本质上就是高级点的 CRUD
前端·后端·面试
恋猫de小郭2 小时前
OpenAI 亲自教你如何构建可靠 AI 代码,从古法编程转向 Agnet 编程,或者 PUA 你的 AI
前端·人工智能·ai编程
程序员爱钓鱼3 小时前
Go错误处理全解析:errors包实战与最佳实践
前端·后端·go
清汤饺子11 小时前
OpenClaw 本地部署教程 - 从 0 到 1 跑通你的第一只龙虾
前端·javascript·vibecoding
爱吃的小肥羊13 小时前
比 Claude Code 便宜一半!Codex 国内部署使用教程,三种方法任选一!
前端