一文看懂微信小程序新版隐私协议(附带弹窗组件)

news2024/10/7 8:25:11

一、前言

微信小程序近期又迎来了一次改革–9月15日之后如果小程序涉及调用微信的隐私接口获取用户的信息的,需要用户手动同意协议后才可正常调用接口,否则会返回报错信息。
隐私接口目前常用的有:手机号快捷获取、读取照片、获取用户的头像昵称(包括快捷填写能力)等。

本文将实现一个通用的弹窗组件,方便开发者再新项目或者原有项目中适应本次改动。
更多详细介绍,可以看一下官方文档,直达链接官方文档-小程序隐私协议开发指南

二、开发前的准备工作(重要)

基础库调整

隐私协议的相关接口最低支持库为2.32.3。因此如果要进行本功能的开发调试工作,需要先把基础库版本调整为2.32.3以上,我这里调整为3.0.1。
选择完成后记得点击推送。
在这里插入图片描述

修改app.json配置文件

根据文档的说明,9月15号前需要启用隐私相关功能,需要在app.json中配置__usePrivacyCheck__: true

如果你看到这篇文章的时候已经是9月15号或之后了,就不需要管这个了,因为不管配不配置,都会启用。
在这里插入图片描述

注意:配置后建议清除IDE的缓存,避免配置不生效的情况。直接全部清除然后重新编译就行。两个全部清除选择其中一个就行。

在这里插入图片描述

配置后IDE控制台会输出字段无效的警告,不用管它,字段配置能正常生效就行。
在这里插入图片描述

修改隐私协议

如果小程序目前未采集任何用户隐私,就不需要管这个改动了。
如果隐私协议中未添加隐私接口但实际上有调用的,则需要在微信公众平台中先配置隐私协议,在协议中把你需要调用的隐私接口配置上去就行。(例如采集手机号、选择位置信息等)

在这里插入图片描述
在这里插入图片描述

三、 组件效果展示

在这里插入图片描述

tabbar页面可根据组件字段配置进行,隐藏tabbar。
在这里插入图片描述

四、组件的引入与使用

组件下载地址

组件下载地址:隐私弹窗组件下载链接(请使用电脑浏览器点击下载)

组件引入

解压一下下载的组件压缩包,然后放到目录:miniprogram/components下,如果没有components文件夹,新建一个就行。
在这里插入图片描述

引入的话,可以在需要使用弹窗的页面.json文件引入,如果多个页面需要用到的话,可以在app.json文件中全局引入。
页面引入:
在这里插入图片描述

全局引入:
在这里插入图片描述

组件说明

组件目前一共有三个参数以及一个回调事件。

参数名参数说明
showPop(Boolean)控制弹窗显示或者隐藏
exitApp(Boolean)拒绝是否退出小程序
inTabPage(Boolean)是否在tabbar页面 用于隐藏tabbar
handle(event)弹窗按钮点击后的回调事件 返回授权结果 {errMsg: “”, result: false/true}

组件授权结果会同时在全局参数app.json中存储,开发者可以自己决定需不需要。
不需要的话,直接注释组件的代码。
在这里插入图片描述

组件的使用

注意,为了降低组件的耦合性,组件内部并不进行是否需要隐私接口授权的判断。因此弹窗显示的时机需要开发者自己进行处理。

使用案例代码(在页面onload时展示)

页面json

局部引入组件

{
    "usingComponents": {
        "privacyPopup": "../../components/privacyPopup/privacyPopup"
    },
    "navigationBarTitleText": "弹窗使用案例",
    "navigationBarBackgroundColor": "#fff"
}

wxml

<privacyPopup showPop="{{showPop}}" exitApp bind:handle="popBtnTap"></privacyPopup>

页面JS

Page({
  /**
   * 页面的初始数据
   */
  data: {
    showPop: false,
  },

  /**
   * 生命周期函数--监听页面加载
   */
  async onLoad() {
    const privacySettingRes = await this.getPrivacySetting();
    console.log("privacySettingRes :>> ", privacySettingRes);
    this.setData({
      showPop: privacySettingRes.needAuthorization,
    });
  },

  /**
   * 按钮点击回调
   */
  popBtnTap(res) {
    console.log("授权结果返回数据 :>> ", res);
    console.log("授权结果 :>> ", res.detail);
    if (res.detail.result) {
      wx.showToast({
        title: "同意授权",
        icon: "success",
      });
    } else {
      wx.showToast({
        title: "拒绝授权",
        icon: "error",
      });
    }
  },

  /**
   * 获取隐私协议授权信息
   * @returns {object} {needAuthorization: true/false, privacyContractName: '《xxx隐私保护指引》'}
   */
  getPrivacySetting() {
    const res = {
      needAuthorization: false,
      privacyContractName: "基础库过低,不需要授权",
    };
    if (!wx.getPrivacySetting) return res;
    return new Promise((resolve, reject) => {
      wx.getPrivacySetting({
        success(res) {
          resolve(res);
        },
        fail(err) {
          reject(err);
        },
      });
    });
  },
});

实现效果

在这里插入图片描述

用户拒接授权

在这里插入图片描述

用户同意授权

在这里插入图片描述

关于调试

授权后需要重新触发授权请求,在IDE中可以清除授权缓存来实现。如果是真机的话,可以长按删除小程序来实现。
在这里插入图片描述

五、结语

最后来一下常规结语:
实际开发中的其他逻辑就不写了。需要同学们自己去考虑异常情况处理等问题啦。

有任何疑问可以在评论区留下。我每天都会进行回复,私聊不回。(为了刷积分)

以上均是本人开发过程中的一些经验总结与领悟,如果有什么不正确的地方,希望大佬们评论区斧正。

💥最后!!!不管这篇文章对你有没有用,既然都看到最后了。
👍赞一个!!!
🤩当然,顺带收藏就最好了。
😎欢迎转载,原创不易,转载请注明出处✍️。

😊如果你对小程序开发有兴趣或者正在学习小程序开发,可以关注我。每一篇都是原创,每一篇都是干货噢~。
————————————————
版权声明:本文为CSDN博主「super–Yang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_44702572/article/details/132772791

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/991698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ArcGIS Pro3.0.2保姆级安装教程(附安装包)

软件简介&#xff1a; ArcGIS Pro是ERSI推出的新一代原生态64位ArcGIS桌面产品。具备强大的二维、三维一体化功能&#xff0c;继承了传统桌面产品ArcMap等产品几乎所有的功能&#xff0c;并在多个方面作了进一步的优化和改进&#xff0c;是云端一体化、数据科学与空间数据科学…

基于FPGA的图像二值化处理,包括tb测试文件和MATLAB辅助验证

1.算法运行效果图预览 将FPGA的数据导入到matlab进行显示 2.算法运行软件版本 Vivado2019.2 matlab2022a 3.部分核心程序 timescale 1ns / 1ps ............................................................................. module test_image;reg i_clk; reg i_rst; r…

基于SpringBoot+VUE的考试题库刷题系统

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 在现代教育领域&#…

spring---第四篇

系列文章目录 文章目录 系列文章目录一、解释下Spring支持的几种bean的作用域。二、Spring框架中的单例Bean是线程安全的么?一、解释下Spring支持的几种bean的作用域。 singleton:默认,每个容器中只有一个bean的实例,单例的模式由BeanFactory自身来维护。该 对象的生命周期…

c++动态对象

目录 malloc和free动态申请 c中动态申请 用于数组的 new 和 delete delete void*问题 使用 new 和 delete 采用相同形式 malloc和free动态申请 在c中 释放对象时 系统会自动调用析构函数 但在以下代码编译运行后 析构和构造均未调用 所以在c中不能用malloc和free动态申请…

华为云云耀云服务器L实例评测|使用Docker部署Leanote笔记工具

华为云云耀云服务器L实例评测&#xff5c;使用Docker部署Leanote笔记工具 一、前言1.1 云耀云服务器L实例介绍1.2 Leanote简介 二、本次实践介绍2.1 本次实践简介2.2 本次环境规划 三、购买云耀云服务器L实例3.1 购买云耀云服务器L实例3.3 查看云耀云服务器L实例状态3.4 重置服…

CRM软件系统使用详细流程

很多人不太了解CRM系统&#xff0c;不知道CRM在哪里打开。其实&#xff0c;在线CRM系统使用非常简单&#xff0c;只要您打开浏览器&#xff0c;输入对应网址就可以访问使用&#xff0c;完全不用下载软件&#xff0c;随时随地都可以使用。 1、选择CRM供应商 选择合适的CRM供应…

离子风蛇有什么作用?

离子风蛇的工作原理是通过内置的高压发生器升至高压电晕空气生成正负离子&#xff0c;再随风流覆盖至物体表面&#xff0c;从而中和其所带的正负静电电荷&#xff0c;这是一种用在工厂里面的工业设备&#xff0c;主要的作用是用来消除静电&#xff0c;其次还可以达到除尘和杀菌…

elementui el-dialog 动态生成多个,点击按钮打开对应的 dialog

业务场景&#xff1a; 根据后端返回的数据&#xff0c;动态生成表单&#xff0c;返回的数据中会有表单字段的类型&#xff0c;如果单选、多选、富文本&#xff0c;其它的属性还好说&#xff0c;重点说在富文本&#xff0c;因为我想通过 dialog 弹窗的方式&#xff0c;进行富文…

frp 内网穿透安装配置使用

文档先发一下&#xff08;好像要科学上网&#xff09; Github 项目地址 查看系统架构 需要一个服务器当做服务端进行端口转接&#xff0c;连接服务器之后&#xff0c;输入以下命令查看系统 uname -a拉取程序包 输入以下命令下载 frp 程序包&#xff0c;按版本号改第一个命令…

工业网络通讯技术的发展历程

工业互联网可以通过人、机、物的全面互联&#xff0c;实现产业链、生产链、全价值链的全面连接&#xff0c;将行业、企业的各种数据和信息都通过平台进行处理分析&#xff0c;对整个工厂的生产、运营、采购、销售乃至研发设计进行管理&#xff0c;提高企业的生产效率&#xff0…

完整版:IPSec报文格式

IPSec协议族是IETF&#xff08;Internet Engineering Task Force&#xff09;制定的一系列协议&#xff0c;它为IP数据报提供了高质量的、可互操作的、基于密码学的安全性。 IPSec通过认证头AH&#xff08;Authentication Header&#xff0c;协议号51&#xff09;和封装安全载…

ipad触控笔有必要买原装吗?开学季ipad2023手写笔推荐

随着开学新学期的开始了&#xff0c;而平板电脑也开始在学校里流行了起来&#xff0c;这也给学生们带来了更多的便利。而苹果的原装电容笔&#xff0c;尽管功能很强&#xff0c;但是因为它的价格比较贵&#xff0c;要是你仅仅只是用来做学习和记录笔记的话&#xff0c;所以在国…

用C语言实现牛顿摆控制台动画

题目 用C语言实现牛顿摆动画&#xff0c;模拟小球的运动&#xff0c;如图所示 拆解 通过控制台API定位输出小球运动的只是2边小球&#xff0c;中间小球不运动&#xff0c;只需要固定位置输出左边小球上升下降时&#xff0c;X、Y轴增量一致。右边小球上升下降时&#xff0c;X、…

解决在远程连接的linux服务器上调用matplotlib画图的问题

前言&#xff1a; 我遇到这个问题的时候&#xff0c;在知乎上看到了一个回答&#xff0c;结果评论区看到了一个最简洁的解。 https://zhuanlan.zhihu.com/p/346384579 效果 左边是代码&#xff0c;右边是结果&#xff0c;弊处就是有点慢。 安装步骤 1. 安装插件 在代码处…

荣威 D7 正式亮相,新能源江湖再战

在 2023 成都车展上&#xff0c;荣威回归轿车领域的全新车型——D7 正式亮相。新车将推出纯电和插混的版本。 一、内饰实拍 内饰方面&#xff0c;这也是荣威 D7 的首次开门。可以看到&#xff0c;荣威 D7 将采用类似三联屏的设计&#xff0c;实际采用的是双 12.3 英寸液晶屏。…

linux 多重启动grub2详解

https://www.gnu.org/software/grub/manual/grub/grub.pdf

Revit SDK 介绍:ManipulateForm 体量族的修改

前言 这个例子介绍体量族的修改。包含了创建体量&#xff0c;用API 移动体量族的顶点、边、轮廓&#xff08;面&#xff09;。 内容 效果分步骤展示。 整理&#xff1a; 核心逻辑 创建拉伸体 m_revitDoc.FamilyCreate.NewLoftForm(true, profiles)增加一个截面 form.Add…

解释一下Kubernetes Minikube是什么,以及如何在本地运行一个Minikube集群

文章目录 步骤1&#xff1a;准备环境步骤2&#xff1a;安装和配置Minikube步骤3&#xff1a;验证集群状态步骤4&#xff1a;部署一个示例应用创建一个Deployment部署应用检查部署 步骤5&#xff1a;访问应用获取Minikube IP地址&#xff1a;获取Service的NodePort&#xff1a; …

SEO百度优化基础知识全解析(了解百度SEO标签作用)

百度SEO优化的作用介绍&#xff1a; 百度SEO优化是指通过对网站的内部结构、外部链接、内容质量、用户体验等方面进行优化&#xff0c;提升网站在百度搜索结果中的排名&#xff0c;从而提高网站的曝光率和流量。通过百度SEO优化&#xff0c;可以让更多的潜在用户找到你的网站&…