当前位置: 首页 > news >正文

微信小程序隐私协议相关接口实际使用方式

<view wx:if="{{showPrivacy}}" class="privacy"><view class="popup"><view>隐私弹窗内容....</view><view bindtap="openPrivacyAgreement">点击查看隐私协议</view><button id="disagreeBtn" bindtap="disagreePrivacy">不同意</button><button id="agreeBtn" open-type="agreePrivacyAuthorization" bindagreeprivacyauthorization="agreePrivacy">同意</button></view>
</view>

1、全局控制

页面加载时自动弹窗,同意后可以使用对应功能,不同意退出页面或者隐藏相关功能。
这种情况下,需要在onLoad里使用wx.getPrivacySetting获取隐私授权情况,没授权时弹出隐私弹窗。完整代码如下

Page({data: {showPrivacy: false // 控制隐私弹窗是否展示},openPrivacyAgreement() {// 查看隐私协议wx.openPrivacyContract()},disagreePrivacy() {// 关闭隐私弹窗this.setData({showPrivacy: false})// 这里是不同意隐私协议的后续操作,比如退出页面、隐藏相关功能等},agreePrivacy() {// 关闭隐私弹窗this.setData({showPrivacy: false})// 这里是同意隐私协议的后续操作,比如展示被隐藏的相关功能},onLoad() {if (wx.getPrivacySetting) {wx.getPrivacySetting({success: res => {if (res.needAuthorization) {// 打开隐私弹窗this.setData({showPrivacy: true})} else {// 用户已经同意过隐私协议,直接执行同意隐私协议的后续操作,比如展示被隐藏的相关功能}}})}}
})

2、按需使用

在使用到隐私接口时弹出隐私弹窗,同时隐私接口的流程会被挂起,用户同意后会继续执行,不同意则中止执行。
这种情况下,需要在onLoad里定义好监听隐私接口时的授权事件,也就是wx.onNeedPrivacyAuthorization,然后在用户点击同意或者不同意后调用回调接口 resolve 进行上报,完整代码如下

Page({data: {showPrivacy: false // 控制隐私弹窗是否展示},openPrivacyAgreement() {// 查看隐私协议wx.openPrivacyContract()},disagreePrivacy() {// 关闭隐私弹窗this.setData({showPrivacy: false})// 上报用户不同意隐私协议,隐私接口操作会被自动中止this.resolvePrivacyAuthorization({buttonId: 'disagreeBtn',event: 'disagree'})},agreePrivacy() {// 关闭隐私弹窗this.setData({showPrivacy: false})// 上报用户同意隐私协议,隐私接口操作会被自动继续执行this.resolvePrivacyAuthorization({buttonId: 'agreeBtn',event: 'agree'})},onLoad() {if (wx.onNeedPrivacyAuthorization) {wx.onNeedPrivacyAuthorization(resolve => {// 打开隐私弹窗this.setData({showPrivacy: true,})// 定义上报方法this.resolvePrivacyAuthorization = resolve})}}
})

3、全局控制和按需使用结合使用

这种情况是上面两种方式的结合,页面加载

let pageOnload = true // 是否页面加载时弹窗Page({data: {showPrivacy: false // 控制隐私弹窗是否展示},openPrivacyAgreement() {// 查看隐私协议wx.openPrivacyContract()},disagreePrivacy() {// 关闭隐私弹窗this.setData({showPrivacy: false})if (!pageOnload) {// 上报用户不同意隐私协议,隐私接口操作会被自动中止this.resolvePrivacyAuthorization({buttonId: 'disagreeBtn',event: 'disagree'})} else {pageOnload = false}},agreePrivacy() {// 关闭隐私弹窗this.setData({showPrivacy: false})if (!pageOnload) {// 上报用户同意隐私协议,隐私接口操作会被自动继续执行this.resolvePrivacyAuthorization({buttonId: 'agreeBtn',event: 'agree'})} else {pageOnload = false}},onLoad() {if (wx.getPrivacySetting) {wx.getPrivacySetting({success: res => {if (res.needAuthorization) {// 打开隐私弹窗this.setData({showPrivacy: true})}}})}if (wx.onNeedPrivacyAuthorization) {wx.onNeedPrivacyAuthorization(resolve => {// 打开隐私弹窗this.setData({showPrivacy: true,})// 定义上报方法this.resolvePrivacyAuthorization = resolve})}}
})

时弹出隐私弹窗,不管用户同意还是不同意都不需要做其他操作。然后用户在用到隐私接口时,根据用户是否同意再按需决定是否再次弹窗。
这种情况下,需要在onLoad里使用wx.getPrivacySetting获取隐私授权情况,没授权时弹出隐私弹窗。同时定义好监听隐私接口时的授权事件,也就是wx.onNeedPrivacyAuthorization,然后在用户点击同意或者不同意后调用回调接口 resolve 进行上报,完整代码如下

http://www.lryc.cn/news/160899.html

相关文章:

  • MySQL--MySQL表的增删改查(进阶)
  • Golang 中的静态类型和动态类型
  • docker的数据卷、docker数据持久化
  • 阅读源码工具Sourcetrail
  • KMP 算法详解
  • [matconvnet]matconvnet-1.0-beta-25在cuda11.1以上编译问题总结
  • 自动化驱动程序管理
  • 智能合约编写高级篇(二)区块哈希介绍
  • 二进制链表转整数
  • Python爬虫进阶:使用Scrapy库进行数据提取和处理
  • 五)Stable Diffussion使用教程:文生图之高清修复
  • SQL SERVER 如何实现UNDO REDO 和PostgreSQL 有近亲关系吗
  • SpringBoot原理-自动配置-原理分析-源码跟踪
  • 安全基础 --- 原型链污染
  • c++中的常用知识点总结
  • Leetcode:349. 两个数组的交集【题解超详细】
  • Java 【异常】
  • B - Polycarp‘s Practice
  • 朴素贝叶斯数据分类------
  • flask中的操作数据库的插件Flask-SQLAlchemy
  • arrow的使用
  • 【24种设计模式】装饰器模式(Decorator Pattern(Wrapper))
  • 小程序v-for与key值使用
  • Qt包含文件不存在问题解决 QNetworkAccessManager
  • 【视频图像篇】FastStone Capture屏幕长截图软件
  • 【C语言】每日一题(杨氏矩阵查找数)
  • 探究SpringWeb对于请求的处理过程
  • 如何使用Google Compute Engine入门指南快速创建和配置您的云虚拟机实例
  • springMVC中全局异常处理
  • 【Nginx24】Nginx学习:压缩模块Gzip