likes
comments
collection
share

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

作者站长头像
站长
· 阅读数 19

前言

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

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

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

感谢

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

我遇到的一些坑

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

"__usePrivacyCheck__": true,

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

调用api会报错,如下:

chooseMedia:fail api scope is not declared in the privacy agreement

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

developers.weixin.qq.com/miniprogram…

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

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

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

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

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

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

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

这个方法限用于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中(如果没有则创建该文件)
// 引入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'
                        ),
                    },
                },
            ],
        },
    }
}

// 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

有问题评论区指正

谢谢

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