微信小程序新版隐私协议弹窗实现最新版

1. 微信小程序又双叒叕更新了

2023.08.22更新:

以下指南中涉及的 getPrivacySetting、onNeedPrivacyAuthorization、requirePrivacyAuthorize 等接口目前可以正常接入调试。调试说明:

  1. 在 2023年9月15号之前,在 app.json 中配置 __usePrivacyCheck__: true 后,会启用隐私相关功能,如果不配置或者配置为 false 则不会启用。
  2. 在 2023年9月15号之后,不论 app.json 中是否有配置 __usePrivacyCheck__,隐私相关功能都会启用。

2. 实现思路

  1. 初始化进入小程序时先检测用户是否已经授权了隐私协议。如果没有授权,就弹出用户授权隐私协议的弹窗
  2. 用户点击确认授权,即可正常使用小程序
  3. 用户如果取消授权,当用户点击需要授权的功能,比如获取手机号的按钮,开启蓝牙的按钮等待涉及用户隐私的功能,就重新弹窗,让用户确认授权后,才能使用对应的功能。否则只能浏览页面,无法使用小程序的功能。

3. 实现效果

用户初始化进入小程序时,弹出授权窗口,用户点击登录按钮时,如果未授权也弹出此窗口

在这里插入图片描述

4. 代码实现

<template><view class="login-page">
<!--    当用户点击授权同意隐私协议后才可以正常点击登录按钮获取手机号码--><button open-type="getPhoneNumber" @getphonenumber="authPhone" v-if="ysxy.agree"><u-icon name="fingerprint" color="#2979ff" size="68"></u-icon></button><!--    当用户未授权同意意思协议时,打开授权隐私协议的弹窗,否则无法登录系统--><button v-else @click="ysxy.show = true"><u-icon name="fingerprint" color="#2979ff" size="68"></u-icon></button><u-modal v-model="ysxy.show" :negative-top="200" title="用户隐私提示保护" :show-confirm-button="false":mask-close-able="true"><view class="slot-content" ><view class="ysbox">感谢您使用本产品,您使用本产品前应当仔细阅读并同意<span  @click="openYsXyDetail" class="ysname">{{ ysxy.name }}</span>当您点击同意并开始使用产品服务时,即表示你已理解并同意该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法更好的体验产品。</view><div class="auth-btncard"><div class="btn-unok"><u-button :hair-line='false' :custom-style="customStyleUnOk" @click="ysxy.show=false">拒绝</u-button></div><div class="btn-ok"><u-button :hair-line='false' :custom-style="customStyleOk" open-type="agreePrivacyAuthorization"@click="ysxy.show=false;ysxy.agree=true;"> 同意</u-button></div></div></view></u-modal></view>
</template>
<script>
import global from "../../common/utils/global";
export default {data() {return {ysxy:{show:false,name:'《小程序隐私保护指引》',agree:false},customStyleOk: {marginTop: '20rpx', // 注意驼峰命名,并且值必须用引号包括,因为这是对象border: 'none',color: '#157DFB'},customStyleUnOk: {marginTop: '20rpx', // 注意驼峰命名,并且值必须用引号包括,因为这是对象border: 'none',color: 'gray'},}},onLoad(option) {//#ifdef MP-WEIXINthis.initYsxy();//#endif},methods: {openYsXyDetail(){uni.openPrivacyContract({});},initYsxy(){this.ysxy.agree = false;let _this=this;if (uni.getPrivacySetting) {uni.getPrivacySetting({success: res => {console.log("是否需要授权:", res.needAuthorization, "隐私协议的名称为:", res.privacyContractName)if (res.needAuthorization) {_this.ysxy.name = res.privacyContractName_this.ysxy.show = true;} else {//已经同意了_this.ysxy.agree = true;}},fail: () => {},complete: () => {},})}},}
}
</script>
<style lang="scss" scoped>
.ysbox{margin: 40rpx;.ysname{color: #157DFB;}
}
.auth-btncard {.btn-unok {width: 50%;float: left;}.btn-ok {width: 50%;float: left;margin: 0;padding: 0;border: 0px solid transparent; //自定义边框outline: none; //消除默认点击蓝色边框效果u-button {margin: 0;padding: 0;border: 0px solid transparent; //自定义边框outline: none; //消除默认点击蓝色边框效果}}
}
</style>

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

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

相关文章

从docker容器访问宿主机

主要解决从容器内访问外网的服务。 网上文章的很大内容雷同&#xff0c;除了用–nethost这种硬来的可行外&#xff0c;其它的方法都没看的很懂&#xff0c;按自己的思路整理。 用–add-hosthost.docker.internal:host-gateway参数解决 docker run -d --add-hosthost.docker.i…

SpringCloudAlibaba Gateway(三)-整合Sentinel功能路由维度、API维度进行流控

Gateway整合Sentinel ​ 前面使用过Sentinel组件对服务提供者、服务消费者进行流控、限流等操作。除此之外&#xff0c;Sentinel还支持对Gateway、Zuul等主流网关进行限流。 ​ 自sentinel1.6.0版开始&#xff0c;Sentinel提供了Gateway的适配模块&#xff0c;能针对路由(rou…

kaggle赛后总结

1. 宽表 2.缺失值的处理方法 最简单粗暴的就是删除&#xff0c;这种情况是凡是有缺失值行数很少。均值替代。缺失值的行数比较多一点儿的时候&#xff0c;直接删除会影响样本数量&#xff0c;那就均值替代&#xff0c;或者中位数替代等方法。还有复杂的方法&#xff0c;把有缺…

机器学习笔记之最优化理论与方法(四) 凸函数:定义与基本性质

机器学习笔记之最优化理论与方法——再回首&#xff1a;凸函数定义与基本性质 引言凸函数的定义严格凸函数凸函数的推论&#xff1a;凹函数 常见凸函数凸函数的基本性质几种保持函数凸性的运算凸集与凸函数之间的关联关系 引言 本节将介绍凸函数定义及其基本性质。 本文是关于…

网络安全应急响应典型案例-(DDOS类、僵尸网络类、数据泄露类)

一、DDOS类事件典型案例 DDOS攻击&#xff0c;即分布式拒绝服务攻击&#xff0c;其目的在于使目标电脑的网络或系统资源耗尽&#xff0c;使服务暂时中断或停止&#xff0c;导致其正常用户无法访问。CC攻击使用代理服务器向受害服务器发送大量貌似合法的请求&#xff08;通常…

设计模式—简单工厂

目录 一、前言 二、简单工厂模式 1、计算器例子 2、优化后版本 3、结合面向对象进行优化&#xff08;封装&#xff09; 3.1、Operation运算类 3.2、客户端 4、利用面向对象三大特性&#xff08;继承和多态&#xff09; 4.1、Operation类 4.2、加法类 4.3、减法类 4…

【爬虫】7.1. JavaScript动态渲染界面爬取-Selenium

JavaScript动态渲染界面爬取-Selenium的简单学习 文章目录 JavaScript动态渲染界面爬取-Selenium的简单学习1. Selenium准备工作2. Selenium简单用法2.1. 初始化浏览器对象-webdriver.Chrome()2.2. 访问界面-browser.get()2.3. 查找节点-find_element()2.4. 节点交互-send_keys…

多线程练习-使用两个线程来累加 count 的值

题目 有20个线程&#xff0c;需要同时启动。 每个线程按0-19的序号打印&#xff0c;如第一个线程需要打印0 请设计代码&#xff0c;在main主线程中&#xff0c;等待所有子线程执行完后&#xff0c;再打印 ok 代码以及注释 public class Soultion {public static void main…

QUdpSocket Class

继承自 QAbstractSocket 类 QUdpSocket类提供UDP套接字。 UDP(用户数据报协议)是一种轻量级、不可靠、面向数据报、无连接的协议。它可以在可靠性不重要的情况下使用。QUdpSocket是QAbstractSocket的一个子类&#xff0c;它允许您发送和接收UDP数据报。 使用这个类最常见的方法…

C++STL字符串string知识汇总,恶补!

基础不牢&#xff0c;地动山摇。 今天小米的笔试编程题&#xff0c;输入格式是一整个字符串&#xff0c;需要从字符串中分割出数据&#xff0c;同时还需要将字符串转换为int数值。 本来用C写&#xff0c;写到一般想起来了C中没有split()函数&#xff0c;想到在java中有这个函数…

Linux安装包deb格式安装方法

deb格式介绍 DEB是Debian软件包格式的文件扩展名&#xff0c;跟Debian的命名一样&#xff0c;DEB也是因Debra Murdock而得名&#xff0c;她是Debian创始人Ian Murdock的太太。 安装方法 主要有两种: apt: 支持离线在线的结合安装,主要解决部分安装包依赖不全的问题dpkg: 纯…

【探索SpringCloud】服务发现-Nacos服务端数据结构和模型

前言 上一文中&#xff0c;我们从官方的图示了解到Nacos的服务数据结构。但我关心的是&#xff0c;Nacos2.x不是重构了吗&#xff1f;怎么还是这种数据结构&#xff1f;我推测&#xff0c;必然是为了对Nacos1.x的兼容&#xff0c;实际存储应该不是这样的。于是&#xff0c;沿着…

VueRouter的基本使用

路由的基本使用 文章目录 路由的基本使用01-VueRouterVueRouter的使用 &#xff08; 5 2&#xff09;综合代码 拓展&#xff1a;组件存放问题 什么是路由呢&#xff1f; 在生活中的路由&#xff1a;设备和IP的映射关系 在Vue中&#xff1a;路径 和 组件 的 映射 关系。 01-Vu…

怎么从0到1创建一个PHP框架-1?

写在前面 本人开发的框架在2021年年初开发完成&#xff0c;后面没有再做过任何维护和修改。是仅供大家参考交流的学习项目&#xff0c;请勿使用在生产环境&#xff0c;也勿用作商业用途。 框架地址&#xff1a; https://github.com/yijiebaiyi/fast_framework 整体思路 开发…

SpringBoot第45讲:SpringBoot定时任务 - Timer实现方式

SpringBoot第45讲:SpringBoot定时任务 - Timer实现方式 定时任务在实际开发中有着广泛的用途,本文是SpringBoot第45讲,主要帮助你构建定时任务的知识体系,同时展示Timer 的schedule和scheduleAtFixedRate例子;后续的文章中我们将逐一介绍其它常见的定时任务,并与SpringBo…

并发测试工具 apache-jmeter使用发送post请求JSON数据

目录 1 下载安装 2 汉化 3 创建高并发测试 配置线程组 创建web请求 创建监听器 结果树 汇总报告 为web请求添加token 添加Content-Type用于发送json 4 启动测试 5 查看结果 1 下载安装 官网Apache JMeter - Download Apache JMeter 解压运行 2 2 汉化 打开软件…

【Mysql系列】(一)MySQL语句执行流程

首发博客地址 首发博客地址 系列文章地址 参考文章 MySQL 逻辑架构 连接器 连接命令一般是这么写的 mysql -h$ip -P$port -u$user -p 那么 什么是连接器&#xff1f; MySQL 连接器&#xff08;MySQL Connector&#xff09;是用于连接和与 MySQL 数据库进行交互的驱动程序。它提…

远程管理通道安全SSH协议主机验证过程

可以使用SSH协议进行远程管理通道安全保护&#xff0c;其中涉及的主要安全功能包括主机验证、数据加密性和数据完整性保护。 这里要注意的是【主机验证】和【身份验证】的区别&#xff0c;主机验证是客户端确认所访问的服务端是目标访问对象&#xff0c;比如从从客户端A(192.16…

MongoDB 的简介

MongoDB 趋势 对于 MongoDB 的认识 Q&A QA什么是 MongoDB&#xff1f; 一个以 JSON 为数据模型的文档数据库一个以 JSON 为数据模型的文档数据库文档来自于“JSON Document”&#xff0c;并非我们一般理解的 PDF&#xff0c;WORD谁开发 MongDB&#xff1f; 上市公司 MongoD…

【USRP】产品型号、参数、架构全解析系列 1:B200 / B210 / B200mini / B205mini

一、 USRP 简介 通用软件无线电外设( USRP ) 是由 Ettus Research 及其母公司National Instruments设计和销售的一系列软件定义无线电。USRP 产品系列由Matt Ettus领导的团队开发&#xff0c;被研究实验室、大学和业余爱好者广泛使用。 大多数 USRP 通过以太网线连接到主机&a…