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

uniapp微信小程序用户隐私保护指引弹窗组件

<template><view v-if="showPrivacy" :class="privacyClass"><view :class="contentClass"><view class="title">用户隐私保护指引</view><view class="des">感谢您选择使用我们的小程序,我们非常重视您的个人信息安全和隐私保护。使用我们的产品前,请您仔细阅读“<text class="link" @tap="openPrivacyContract">{{privacyContractName}} </text>”,如您同意此隐私保护指引,请点击同意按钮,开始使用此小程序,我们将尽全力保护您的个人信息及合法权益,感谢您的信任!<br /></view><view class="btns"><button class="item reject" @tap="exitMiniProgram">拒绝</button><button id="agree-btn" class="item agree" open-type="agreePrivacyAuthorization"@agreeprivacyauthorization="handleAgreePrivacyAuthorization">同意</button></view></view></view>
</template><script>export default {name: 'PrivacyPopup',data() {return {isRead: false,showPrivacy: false,privacyContractName: '',resolvePrivacyAuthorization: null,};},props: {position: {type: String,default: 'center'}},computed: {privacyClass() {return this.position === 'bottom' ? 'privacy privacy-bottom' : 'privacy';},contentClass() {return this.position === 'bottom' ? 'content2 content-bottom' : 'content2';}},mounted() {if (wx.onNeedPrivacyAuthorization) {wx.onNeedPrivacyAuthorization((resolve) => {this.resolvePrivacyAuthorization = resolve;});}if (wx.getPrivacySetting) {wx.getPrivacySetting({success: (res) => {console.log(res, 'getPrivacySetting');if (res.needAuthorization) {this.privacyContractName = res.privacyContractName;this.showPrivacy = true;}},});}},methods: {openPrivacyContract() {wx.openPrivacyContract({success: () => {this.isRead = true;},fail: () => {uni.showToast({title: '遇到错误',icon: 'error',});},});},exitMiniProgram() {wx.exitMiniProgram();},handleAgreePrivacyAuthorization() {this.showPrivacy = false;if (typeof this.resolvePrivacyAuthorization === 'function') {this.resolvePrivacyAuthorization({buttonId: 'agree-btn',event: 'agree',});}},},};
</script><style lang="scss" scoped>.privacy {position: fixed;top: 0;right: 0;bottom: 0;left: 0;background: rgba(0, 0, 0, .5);z-index: 9999999;display: flex;align-items: center;justify-content: center;}.privacy-bottom {align-items: flex-end;}.content2 {width: 632rpx;padding: 48rpx;box-sizing: border-box;background: #fff;border-radius: 16rpx;}.content-bottom {position: absolute;bottom: 0;width: 100%;padding: 36rpx;padding-bottom: constant(safe-area-inset-bottom);padding-bottom: env(safe-area-inset-bottom);border-radius: 16rpx 16rpx 0 0;}.content2 .title {text-align: center;color: #333;font-weight: bold;font-size: 32rpx;}.content2 .des {font-size: 26rpx;color: #666;margin-top: 40rpx;text-align: justify;line-height: 1.6;}.content2 .des .link {color: #07c160;text-decoration: underline;}.btns {margin-top: 48rpx;margin-bottom: 12rpx;display: flex;}.btns .item {width: 200rpx;height: 72rpx;overflow: visible;display: flex;align-items: center;justify-content: center;/* border-radius: 16rpx; */box-sizing: border-box;border: none !important;}.btns .reject {background: #f4f4f5;color: #07c160;font-size: 14px;font-weight: 300;margin-right: 16rpx;width: 240rpx;&::after{border: none;}}.btns .agree {width: 240rpx;background: #07c160;color: #fff;font-size: 16px;&::after{border: none;}}.privacy-bottom .btns .agree {width: 240rpx;}
</style>

然后在用到的页面进行引入

<template><popup ref="privacyComponent" position="bottom"  />
</template><script setup>import popup from '/components/privacy-popup.vue'
</script>

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

相关文章:

  • Java的反射应用(Method和Class)
  • Java之泛型系列--Class使用泛型的方法(有示例)
  • 【【无用的知识之串口学习】】
  • 9月13日上课内容 第三章 ELK日志分析系统
  • 不知道有用没用的Api
  • (2023,LENS 视觉模型 LLM)迈向可见的语言模型:通过自然语言的镜头来看计算机视觉
  • 线段树上树剖再拿线段树维护:0914T4
  • 互联网医院系统|互联网医院探索未来医疗的新蓝海
  • Acrel-2000系列监控系统在亚运手球比赛馆建设10kV供配电工程中的应用
  • c++中遇到一个不了解的函数,查看能用的接口功能
  • windows linux子系统 docker无法启动
  • 【Redis】深入探索 Redis 的数据类型 —— 无序集合 Set
  • 可变参数JAVA
  • Zabbix监控平台部署流程
  • 重磅!文晔以38亿美元收购富昌电子 | 百能云芯
  • Multimodel Image synthesis and editing:The generative AI Era
  • Linux——(第十章)进程管理
  • 【操作系统】聊聊协程为什么可以支撑高并发服务
  • 算法leetcode|80. 删除有序数组中的重复项 II(rust重拳出击)
  • Vite 完整版详解
  • AI入门指南:探索人工智能的基础原理和实际应用
  • 使用 Webpack 从 0 到 1 构建 Vue3 项目 + ts
  • 【Git】Git 分支
  • .NET Upgrade Assistant 升级 .NET MAUI
  • 记一次诡异的Cannot find declaration to go to,Cannot resolve method
  • 智慧园区:AI边缘计算技术与视频监控汇聚平台打造智慧园区解决方案
  • SpringCloud(17~21章):Alibaba入门简介、Nacos服务注册和配置中心、Sentinel实现熔断与限流、Seata处理分布式事务
  • Jmeter安装与测试
  • java开发环境从0开始 【汇总版】
  • 线性代数的本质(九)——二次型与合同