适配小程序隐私保护指引设置

news/2025/2/13 5:56:05/

由于小程序发布了一个公告,那么接下来就是怎么改简单的问题了。毕竟不太想大的改动历史上的代码。尽量简单的适配隐私策略就可以了。

整体思路也是参考现在App普遍的启动就让用户同意隐私策略,不同意不让用,同意了之后才能够继续使用。

公告内容
参考文档

整体思路

整体思路如下:

  1. 在app.js中检查是否已经读过;
  2. 如果没读过,直接跳转到隐私策略页面(隐私策略页面自定义导航且没有返回按钮,为了防止Android的侧边滑动退出,在onUnLoad里边判断一下,如果没同意在跳转到隐私策略一面);
  3. 如果点击确定则退页继续正常流程;
  4. 如果点击拒绝,弹出一个不确定无法继续使用的提示。

如此来做的话仅需要增加一个 privacy 的页面,然后在app.js里边跳进这个页面来适配隐私策略。

效果如下:

在这里插入图片描述

详细实现

app.js内容

在app.js里边增加一个检测隐私的函数:

checkPrivacy() {if (!wx.canIUse('getPrivacySetting')) {return}wx.getPrivacySetting({success: res => {console.log("是否需要授权:", res.needAuthorization, "隐私协议的名称为:", res.privacyContractName)if (res.needAuthorization) {wx.navigateTo({url: `/pages/privacy`,})// wx.reLaunch({//   url: '/pages/privacy',// })} },fail: () => { },complete: () => { },})
}

在App的onLaunch中调用一下

setTimeout(() => {this.checkPrivacy()
}, 500);

privacy 页面内容

privacy.js 内容

// pages/privacy.js
Page({isAgree: false,resolvePrivacyAuthorization: null,onLoad(options) {console.log('onload ', options)wx.onNeedPrivacyAuthorization(resolve => {console.log('onNeedPrivacyAuthorization ', resolve)this.resolvePrivacyAuthorization = resolve})wx.requirePrivacyAuthorize()},onUnload() {if (!this.isAgree) {console.log('not agree')wx.navigateTo({url: `/pages/privacy`,})}},handleDisagree: function(event) {console.log('handleDisagree')this.resolvePrivacyAuthorization({ event: 'disagree' })wx.exitMiniProgram()},handleAgree: function(event) {console.log('handleAgree')this.resolvePrivacyAuthorization({ buttonId: 'agree-btn', event: 'agree' })this.isAgree = truewx.navigateBack()},openPrivacyContract() {wx.openPrivacyContract({success: res => {console.log('openPrivacyContract success')},fail: res => {console.error('openPrivacyContract fail', res)}})}
})

privacy.json 内容

{"navigationStyle": "custom","usingComponents": {}
}

privacy.wxml 内容

<!--pages/privacy.wxml-->
<view class="container"><view>用户隐私保护提示</view><view>感谢您使用本游戏,您使用本游戏前应当阅井同意</view><button class="goToPrivacy" bind:tap="openPrivacyContract">《用户隐私保护指引》</button><view>当您点击同意并开始时用产品服务时,即表示你已理解并同息该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法进入游戏。</view><button id="disagree-btn"style="margin-top: 30rpx;"type="default"class="weui-btn"bindtap="handleDisagree">不同意并退出</button><button id="agree-btn"type="default"open-type="agreePrivacyAuthorization"class="weui-btn"bindagreeprivacyauthorization="handleAgree">同意并继续</button>
</view>

privacy.wxss 内容

/* pages/privacy.wxss */.container {display: flex;flex-direction: column;justify-content: flex-start;align-items: flex-start;padding: 220rpx 40rpx;
}.goToPrivacy {width: 670rpx !important;margin: 20rpx 0;font-size: 28rpx;
}

http://www.ppmy.cn/news/1061389.html

相关文章

22-扩展

一 进程与线程;同步与异步任务;宏任务与微任务 一、进程与线程 一个程序只有一个进程,一个进程包含多个线程,单线程和多线程 二、同步与异步任务 同步任务:是指在主线程上排队执行的任务,只有前一个任务执行完毕,才能继续执行下一个任务。按顺序执行,可以看做单线程,…

[uniapp] scroll-view 简单实现 u-tabbar效果

文章目录 方案踩坑1.scroll-view 横向失败2.点击item不滚动?3. scrollLeft从哪里来? 效果图 方案 官方scroll-view 进行封装 配合属性 scroll-left Number/String 设置横向滚动条位置 即可 scroll-into-view 属性尝试过,方案较难实现 踩坑 1.scroll-view 横向失败 安装…

计算机竞赛 基于卷积神经网络的乳腺癌分类 深度学习 医学图像

文章目录 1 前言2 前言3 数据集3.1 良性样本3.2 病变样本 4 开发环境5 代码实现5.1 实现流程5.2 部分代码实现5.2.1 导入库5.2.2 图像加载5.2.3 标记5.2.4 分组5.2.5 构建模型训练 6 分析指标6.1 精度&#xff0c;召回率和F1度量6.2 混淆矩阵 7 结果和结论8 最后 1 前言 &…

AI夏令营第三期用户新增挑战赛学习笔记

1、数据可视化 1.数据探索和理解&#xff1a;数据可视化可以帮助我们更好地理解数据集的特征、分布和关系。通过可视化数据&#xff0c;我们可以发现数据中的模式、异常值、缺失值等信息&#xff0c;从而更好地了解数据的特点和结构。2.特征工程&#xff1a;数据可视化可以帮助…

基于java街球社区网站设计与实现

摘  要 本文主要讲述了基于SpringBootVue模式的街球社区网站的设计与实现。这里所谓的街球社区网站是通过类似于百度贴吧之类的网上论坛使得所有的街球爱好者有一个可以互相交流的平台,并使所有用户可以在社区进行教学视频的观看以及相关体育运动产品的选购,平台的盈利主要靠…

Spring与Mybatis集成且Aop整合

目录 一、集成 1.1 集成的概述 1.2 集成的优点 1.3 代码示例 二、整合 2.1 整合概述 2.2 整合进行分页 一、集成 1.1 集成的概述 集成是指将不同的组件、部分或系统组合在一起&#xff0c;以形成一个整体功能完整的解决方案。它是通过连接、交互和协调组件之间的关系来实…

iOS App签名与重签名:从开发者证书到重新安装运行

前文回顾&#xff1a; iOS脱壳技术&#xff08;二&#xff09;&#xff1a;深入探讨dumpdecrypted工具的高级使用方法 iOS逆向&#xff1a;越狱及相关概念的介绍 在本文中&#xff0c;我们将详细介绍iOS应用的签名过程&#xff0c;包括开发者证书的种类、证书与App ID、Provisi…

stm32基于HAL库驱动外部SPI flash制作虚拟U盘

stm32基于HAL库驱动外部SPI flash制作虚拟U盘 &#x1f4cc;参考文章&#xff1a;https://xiaozhuanlan.com/topic/6058234791&#x1f39e;实现效果演示&#xff1a; &#x1f516;上图中的读到的FLASH_ID所指的是针对不同容量&#xff0c;所对应的ID。 //W25X/Q不同容量对应…