• uni-app 开发小程序接入隐私协议弹窗


    一、template

    1. <view class="privacy-guide-box" v-if="showPrivacyGuide" @touchmove.stop.prevent="toMoveHandle">
    2. <view class="container-box">
    3. <view class="pop-title">温馨提示view>
    4. <view class="pop-cont-box">
    5. <text>在你使用【{{ dialogName }}】 服务之前,请仔细阅读text>
    6. <text class="pop-link-tip" @click="toShowPact">《{{ dialogName }}隐私保护指引》text>
    7. <text>。如你同意《{{ dialogName }}隐私保护指引》,请点击“同意”开始使用【{{ dialogName }}】。text>
    8. view>
    9. <view class="pop-btn-box">
    10. <button class="pop-reject-tip" @click.stop="toPopReject">拒绝button>
    11. <button class="pop-agree-tip" id="agree-btn" open-type="agreePrivacyAuthorization" @agreeprivacyauthorization="toPopAgree">
    12. 同意
    13. button>
    14. view>
    15. view>
    16. view>

    二、data

    1. /* 隐私保护指引 */
    2. showPrivacyGuide: false,
    3. dialogName: "数智贵阳",
    4. resolvePrivacyAuthorization: null,

    三、onLoad

    1. /* 隐私保护指引 */
    2. wx.getPrivacySetting({
    3. success: res => {
    4. if (res.needAuthorization) this.showPrivacyGuide = true; // 需要弹出隐私协议
    5. }
    6. });
    7. wx.onNeedPrivacyAuthorization((resolve, eventInfo) => {
    8. console.log("触发本次事件的接口是:", resolve, eventInfo, eventInfo.referrer);
    9. this.showPrivacyGuide = true; // 需要弹出隐私协议
    10. this.resolvePrivacyAuthorization = resolve;
    11. });

    四、methods

    1. /* 隐私保护指引 */
    2. toShowPact() {
    3. // 跳转至隐私协议页面
    4. wx.openPrivacyContract({});
    5. },
    6. toPopReject() {
    7. // 拒绝
    8. this.showPrivacyGuide = false;
    9. },
    10. toPopAgree() {
    11. // 同意
    12. this.showPrivacyGuide = false;
    13. this.resolvePrivacyAuthorization && this.resolvePrivacyAuthorization({ buttonId: "agree-btn", event: "agree" });
    14. },
    15. toMoveHandle() {},

    五、style

    1. /* 隐私保护指引 - style */
    2. .privacy-guide-box {
    3. position: fixed;
    4. top: 0;
    5. left: 0;
    6. right: 0;
    7. bottom: 0;
    8. display: flex;
    9. align-items: center;
    10. justify-content: center;
    11. width: 100%;
    12. height: 100%;
    13. background: rgba(0, 0, 0, 0.7);
    14. z-index: 999;
    15. .container-box {
    16. width: 80%;
    17. background: #fff;
    18. border-radius: 16rpx;
    19. }
    20. .pop-title {
    21. width: 100%;
    22. text-align: center;
    23. color: #000;
    24. font-size: 38rpx;
    25. margin-top: 30rpx;
    26. font-weight: 900;
    27. }
    28. .pop-cont-box {
    29. color: #969799;
    30. line-height: 1.5;
    31. font-size: 32rpx;
    32. padding: 30rpx 40rpx;
    33. text-align: justify;
    34. .pop-link-tip {
    35. color: #01a281;
    36. }
    37. }
    38. .pop-btn-box {
    39. display: flex;
    40. align-items: center;
    41. justify-content: space-between;
    42. padding: 20rpx 20rpx 30rpx;
    43. button {
    44. width: 45%;
    45. border: 2px solid #01a281;
    46. border-radius: 50rpx;
    47. }
    48. .pop-reject-tip {
    49. color: #01a281;
    50. }
    51. .pop-agree-tip {
    52. color: #fff;
    53. background: #01a281;
    54. }
    55. }
    56. }
  • 相关阅读:
    软件项目管理==风险计划
    教师节到了,用Python做了个非常好用的学生点名系统
    RK356x U-Boot研究所(开发篇)5.1 启动SATA硬盘中的固件
    基于SpringBoot的停车位智能管理系统的设计与实现_kaic
    基于SSM SpringBoot vue家教交流平台
    STM32通用定时器输入捕获
    megahit源码迁移解析
    学生管理系统
    Linux下载安装mysql5.7版本教程最全详解
    数据结构之折半插入排序
  • 原文地址:https://blog.csdn.net/AdminGuan/article/details/132852931