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

有问题评论区指正

谢谢

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

相关推荐
小江的记录本13 分钟前
【JEECG Boot】 JEECG Boot 数据字典管理——六大核心功能(内含:《JEECG Boot 数据字典开发速查清单》)
java·前端·数据库·spring boot·后端·spring·mybatis
小江的记录本14 分钟前
【JEECG Boot】 JEECG Boot——Online表单 系统性知识体系全解
java·前端·spring boot·后端·spring·低代码·mybatis
John_ToDebug14 分钟前
Chromium 页面类型与 IPC 通信机制深度解析
前端·c++·chrome
Fanfffff72015 分钟前
前端进阶:从请求竞态到并发控制(系统学习笔记)
前端·笔记·学习
大、男人16 分钟前
edge浏览器打开baidu.com很慢,我是如何解决的
前端·edge
吴声子夜歌17 分钟前
ES6——函数的扩展详解
前端·ecmascript·es6
有趣的老凌18 分钟前
一篇文章带你了解 Agent Skills —— 告别AI“失控”
前端·agent·claude
~ rainbow~21 分钟前
前端转型全栈(二)——NestJS 入门指南:从 Angular 开发者视角理解后端架构
前端·javascript·angular.js
恋猫de小郭25 分钟前
AGP 9.2 开始,Android 上协程启动和取消速度提升两倍
android·前端·flutter