微信小程序添加用户授权《隐私保护协议》

官方文档:wx.onNeedPrivacyAuthorization(function listener) | 微信开放文档

隐私协议配置 

微信小程序平台上需要进行隐私配置,审核成功后大概半小时左右才会生效。

小程序公众平台 --- 设置 --- 服务内容声明 --- 用户隐私保护指引(提交审核时,也会检测是否采集用户隐私,有用到隐私接口的话需要添加哦)

微信小程序添加隐私保护协议弹框(基础库需在3.0.0以上

1、app.json:外层加上下面一行开启隐私判断;

{"__usePrivacyCheck__": true
}

 2、app.js:存储公共变量,为了解决this.resolvePrivacyAuthorization is not a function的问题;

globalData: {resolvePrivacyAuthorization: null, // 隐私协议上报给微信的公共变量
}

3、 自定义组件 mask-dialog:组件代码如下;

 

<!--component/maskDialog/index.wxml-->
<view class="mask-wrap" wx:if="{{showDialog == 'yes'}}"><view class="dialog-wrap"><view class="dialog-title">用户隐私保护提示</view><view class="dialog-content">感谢您使用本小程序,您使用本小程序前应当阅读并同意</view><view class="content-link" bindtap="jumpPrivacy">《******小程序隐私保护指引》</view><view class="dialog-content">当您点击同意使用产品服务时,即表示您已理解并同意该条款内容。如您拒绝,将无法使用小程序相关功能。</view><view class="dialog-btn-box"><button class="dialog-btn disagreeBtn" bindtap="refusePrivacy">拒绝</button><button class="dialog-btn agreeBtn" id="agree-btn" open-type="agreePrivacyAuthorization" bindagreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button></view></view>
</view>
/* component/maskDialog/index.wxss */
.mask-wrap {width: 100%;height: 100%;position: fixed;top: 0;left: 0;background: rgba(0, 0, 0, 0.5);z-index: 100;
}
.dialog-wrap {width: 80%;padding: 30rpx;position: absolute;top: 50%;left: 50%;transform: translate(-50%, -50%);background: #ffffff;border-radius: 20rpx;
}
.dialog-title {font-weight: bold;font-size: 32rpx;
}
.dialog-content {font-size: 28rpx;color: #999999;margin: 40rpx 0;line-height: 50rpx;
}
.content-link {font-size: 28rpx;color: #0D91EE;
}
.dialog-btn-box {margin-top: 80rpx;text-align: center;
}
.dialog-btn {width: 180rpx;height: 80rpx;font-size: 30rpx;font-weight: bold;line-height: 80rpx;display: inline-block;margin: 0 20rpx;
}
.dialog-btn::after {border: none;
}
.disagreeBtn {background: #F2F2F2;color: #53BF6A;
}
.agreeBtn {background: #53BF6A;color: #ffffff;
}
// component/maskDialog/index.js
const app = getApp();
Component({properties: {showDialog: {type: String,value: 'no'}},data: {},methods: {// 点击“隐私协议连接”,跳转到官方的隐私协议页面jumpPrivacy() {wx.openPrivacyContract({success: () => {}, // 打开成功fail: () => {}, // 打开失败})},// 点击“拒绝”按钮refusePrivacy() {app.globalData.resolvePrivacyAuthorization({ event: 'disagree' });this.triggerEvent('closePrivacy');},// 点击“同意”按钮handleAgreePrivacyAuthorization() {app.globalData.resolvePrivacyAuthorization({ buttonId: 'agree-btn', event: 'agree' });this.triggerEvent('closePrivacy');}}
})
{"component": true,"usingComponents": {}
}

 

在调隐私接口的页面中使用:

 1、json文件中:

"usingComponents": {"mask-dialog": "../../component/mask-dialog/index"
}

2、wxml文件中: 

<!-- 隐私协议 -->
<mask-dialog showDialog="{{showPrivacy}}" bind:closePrivacy="closePrivacy"></mask-dialog>

3、js文件中: 

const app = getApp();data: {showPrivacy: 'no', // 隐私授权弹窗
},onShow() {let _this = this;if (wx.onNeedPrivacyAuthorization) {wx.onNeedPrivacyAuthorization(resolve => {// 需要用户同意隐私授权时,弹出开发者自定义的隐私授权弹窗_this.setData({showPrivacy: 'yes'})app.globalData.resolvePrivacyAuthorization = resolve;})}
},
// 关闭隐私弹框
closePrivacy() {this.setData({ showPrivacy: 'no' });
},

昵称  需要特殊处理一下:

 

1、先添加上面3个步骤;

2、再添加如下代码即可:

<view class="row" catch:touchstart="handleTouchInput"><view class="text1">昵 称</view><input type="nickname" class="weui-input" name="nickname" value="{{nickName}}" placeholder="请输入昵称" focus="{{focus}}"/>
</view>
data: {focus: false, // 昵称聚焦
},handleTouchInput() {let that = thisif (wx.getPrivacySetting) {wx.getPrivacySetting({//获取是否需要弹出success: res => {if (res.needAuthorization) {wx.requirePrivacyAuthorize({//该接口请求隐私协议,会自动触发上边的wx.onNeedPrivacyAuthorizationsuccess: () => {that.setData({focus: true,})},fail: () => {},complete: () => {}})} else {that.setData({focus: true,})}},fail: () => {},complete: () => {}})} else {this.setData({focus: true})}
},

 

以上步骤就完成隐私保护协议修改啦~~~

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

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

相关文章

辛普森近似求值

辛普森近似求解 公式证明任意一个对称区间的一元二次函数定积分拆分求和:strawberry: 总结 : 如果我们把六分之一乘进去我们只不过在指定的区间采集数据六个求平均&#xff0c;乘以采集数据区间的微元宽度&#xff08;历史上不少的手稿用h&#xff0c;翻译为微元高度&#xff0…

在Visual Studio 2017上配置Glut

上篇 已经介绍了如何配置OpenGL&#xff0c;但缺点是每次新建一个项目时&#xff0c;都应重新安装 “nupengl.core.redist” 与 “nupengl.core” 这两个文件&#xff0c;这在有网的情况下还是可以实现的&#xff0c;但不是一个长久之计。现在介绍另一种方法&#xff0c;用Glut…

高光谱图像超分辨率-总

高光谱图像超分辨率 高光谱图像超分辨率 高光谱图像超分辨率一、基础内容1.1 高光谱图像特点1.2 研究现状1.3 高光谱图像数据集1.4 评价指标1.5 Wald**协议**二、文献阅读清单2.1 综述+先锋工作1.提出解混的思想。2.随机混合模型在高光谱分辨率增强中的应用。3.遥感中的多光谱和…

23. 带旋转的数独游戏

题目 Description 数独是一个基于逻辑的组合数字放置拼图&#xff0c;在世界各地都很受欢迎。 在这个问题上&#xff0c;让我们关注 网格的拼图&#xff0c;其中包含 个区域。 目标是用十六进制数字填充整个网格&#xff0c;即 &#xff0c;以便每列&#xff0c;每行和每个区…

java 基础面试题 静态绑定与动态绑定

一 静态绑定与动态绑定 1.1 前言概述 昨天去用友面试&#xff0c;被问到了如下几个问题 1.单例模式使用场景 2.责任链模式 3.分布式事务TCC 4.动态绑定和静态绑定 5.类加载器 今天就来研究一下静态绑定和动态绑定 1.2 静态绑定代码 1.父类&#xff1a;定义一个stati…

打包个七夕exe玩玩

前段时间七夕 当别的哥们都在酒店不要不要的时候 身为程序员的我 还在单位群收到收到 正好后来看到大佬些的这个 https://www.52pojie.cn/thread-1823963-1-1.html 这个贱 我必须要犯&#xff0c;可是我也不能直接给他装个python吧 多麻烦 就这几个弹窗 好low 加上bgm 再打包成…

MySQL访问和配置

目录 1.使用MySQL自带的客户端工具访问 2.使用DOS访问(命令行窗口WinR → cmd) 3.连接工具&#xff08;SQLyog或其它&#xff09; MySQL从小白到总裁完整教程目录:https://blog.csdn.net/weixin_67859959/article/details/129334507?spm1001.2014.3001.5502 1.使用MySQL自…

FastViT实战:使用FastViT实现图像分类任务(一)

文章目录 摘要安装包安装timm安装 grad-cam安装mmcv 数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集补充一个知识点&#xff1a;torch.jit两种保存方式 摘要 论文翻译&#xff1a;https://wanghao.blog.csdn.net/article/details/132407722?spm1001.2014.3001.550…

前端实习第七周周记

前言 第六周没写&#xff0c;是因为第六周的前两天在处理第五周的样本库部分。问题解决一个是嵌套问题&#xff08;因为我用到了递归&#xff09;&#xff0c;还有一个问题在于本机没有问题&#xff0c;打包上线接口404。这个问题我会在这周的总结中说。 第六周第三天才谈好新…

【核心复现】基于改进灰狼算法的并网交流微电网经济优化调度(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Re44:数据集 GSM8K 和 论文 Training Verifiers to Solve Math Word Problems

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名&#xff1a;Training Verifiers to Solve Math Word Problems GSM8K数据集原始论文 OpenAI 2021年的工作&#xff0c;关注解决MWP问题&#xff08;具体场景是小学&#xff08;grade school&#xf…

如何在Mac电脑上安装WeasyPrint:简单易懂的步骤

1. 安装homebrew 首先需要确保安装了homebrew&#xff0c;通过homebrew安装weasyprint可以将需要的库都安装好&#xff0c;比pip安装更简单快捷。 安装方法如下&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)&qu…

SpringBoot v2.7.x+ 整合Swagger3入坑记?

目录 一、依赖 二、集成Swagger Java Config 三、配置完毕 四、解决方案 彩蛋 想尝鲜&#xff0c;坑也多&#xff0c;一起入个坑~ 一、依赖 SpringBoot版本&#xff1a;2.7.14 Swagger版本&#xff1a;3.0.0 <dependency><groupId>com.github.xiaoymin<…

方案展示 | RK3588开发板Linux双摄同显方案

iTOP-RK3588开发板使用手册更新&#xff0c;后续资料会不断更新&#xff0c;不断完善&#xff0c;帮助用户快速入门&#xff0c;大大提升研发速度。 RK3588开发板载4路MIPI CAMERA摄像头接口、MIPI CSI DPHY的4.5Gbps、2.5Gops的MIPI CSI CPHY&#xff0c;四路同时输入&#xf…

react快速开始(三)-create-react-app脚手架项目启动;使用VScode调试react

文章目录 react快速开始(三)-create-react-app脚手架项目启动&#xff1b;使用VScode调试react一、create-react-app脚手架项目启动1. react-scripts2. 关于better-npm-runbetter-npm-run安装 二、使用VScode调试react1. 浏览器插件React Developer Tools2. 【重点】用 VSCode …

MEMS传感器的原理与构造——单片式硅陀螺仪

一、前言 机械转子式陀螺仪在很长的一段时间内都是唯一的选项&#xff0c;也正是因为它的结构和原理&#xff0c;使其不再适用于现代小型、单体、集成式传感器的设计。常规的机械转子式陀螺仪包括平衡环、支撑轴承、电机和转子等部件&#xff0c;这些部件需要精密加工和…

mysql group by 字段 与 select 字段

表数据如下&#xff1a; 执行SQL语句1&#xff1a; SELECT * FROM z_course GROUP BY NAME,SEX 结果&#xff1a; 执行SQL语句2&#xff1a; SELECT * FROM z_course GROUP BY NAME sql 1 根据 name&#xff0c;sex 两个字段分组&#xff0c;查询 所有字段&#xff0c;返回结…

骨传导耳机用久了伤耳朵吗?骨传导耳机有什么优势

骨传导耳机用久了不伤耳朵&#xff0c;相对于传统的入耳式耳机来说&#xff0c;对耳朵的压力和损伤较小。由于骨传导技术不直接通过耳道传递声音&#xff0c;而是通过振动将声音传送到内耳&#xff0c;因此相比其他类型的耳机&#xff0c;它在减少听力损伤的风险方面具有优势。…

Java 加了@PreAuthorize注解的接口在Postman中访问

1. 首先&#xff0c;你需要获取一个有效的用户token&#xff0c;该token应包含了相应的接口权限。你可以通过登录或其他身份验证方式来获取token。2. 打开Postman&#xff0c;并确保已选择正确的HTTP方法&#xff08;GET、POST等&#xff09;。3. 在请求的Headers部分&#xff…

Flink中RPC实现原理简介

前提知识 Akka是一套可扩展、弹性和快速的系统&#xff0c;为此Flink基于Akka实现了一套内部的RPC通信框架&#xff1b;为此先对Akka进行了解 Akka Akka是使用Scala语言编写的库&#xff0c;基于Actor模型提供一个用于构建可扩展、弹性、快速响应的系统&#xff1b;并被应用…