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

有问题评论区指正

谢谢

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

相关推荐
阿明Drift几秒前
从炫酷粒子星云学 Three.js:深度解析一个 15 万粒子的 GPU 动画系统
前端·three.js
凉_橙3 分钟前
移动端h5适配方案
前端
久亮哦3 分钟前
开发Electron程序
前端·javascript·electron
敲敲了个代码7 分钟前
为什么 Electron 项目推荐使用 Monorepo 架构 [特殊字符][特殊字符][特殊字符]
前端·javascript·学习·架构·electron·github
你们的前端课代表7 分钟前
前端如何优雅地“边聊边等”——用 Fetch 实现流式请求大模型
前端
王大宇_8 分钟前
React闭包陷阱
前端·javascript
A达峰绮20 分钟前
Actix-web 框架性能优化技巧深度解析
前端·性能优化·actix-web
Promise52034 分钟前
用油猴脚本实现用户身份快速切换
前端·javascript
玲玲51235 分钟前
vue3组件通信:defineEmits和defineModel
前端
温柔532942 分钟前
仓颉语言异常捕获机制深度解析
java·服务器·前端