首页 > 编程语言 >uniapp微信小程序自定义隐私权限弹窗

uniapp微信小程序自定义隐私权限弹窗

时间:2023-11-02 10:40:18浏览次数:50  
标签:uniapp none 自定义 color 微信 align content font border

插件地址:https://ext.dcloud.net.cn/plugin?id=14576#detail

 

样式小改动

<template>
    <view class="xh-privacy">
        <!-- 默认主题 -->
        <view :style="'background:'+background+';'" class="theme theme-normal" v-if="show_privacy && theme == 'normal'">
            <view class="theme-content">
                <view class="title">{{ title }}</view>
                <view class="des">
                    在使用当前小程序服务之前,请仔细阅读<text :style="'color:'+color+';'" class="link"
                        @click="onOpenPrivacy">{{PrivacyName}}</text>。如你同意{{PrivacyName}},请点击“同意”开始使用。
                </view>
                <view class="btns" style="">
                    <button class="item reject" @click="onExitPrivacy">拒绝</button>
                    <button id="agree-btn" :style="'background:'+color+';'" class="item agree" open-type="agreePrivacyAuthorization"
                        v-on:agreeprivacyauthorization="onHandleAgree">同意</button>
                </view>
            </view>
        </view>
        <!-- 纵向主题 -->
        <view :style="'background:'+background" class="theme theme-direction" v-if="show_privacy && theme == 'direction'">
            <view class="theme-content">
                <view class="title">{{ title }}</view>
                <view class="des">
                    在使用当前小程序服务之前,请仔细阅读<text :style="'color:'+color+';'" class="link"
                        @click="onOpenPrivacy">{{PrivacyName}}</text>。如你同意{{PrivacyName}},请点击“同意”开始使用。
                </view>
                <view class="btns">
                    
                    <button class="item reject" style="width: 300rpx;" @click="onExitPrivacy">拒绝</button>
                    <button id="agree-btn" style="width: 300rpx;"  :style="'background:'+color+';'" class="item agree"
                        open-type="agreePrivacyAuthorization" v-on:agreeprivacyauthorization="onHandleAgree">同意</button>
                </view>
            </view>
        </view>
        <!-- 后续会增加更多好看的主题 -->
        <view class="theme-content">
        </view>
    </view>
    </view>
</template>
<script>
    export default {
        name: "xh-privacy",
        props: {
            background: {
                type: String,
                default: 'rgba(0, 0, 0, .5)'
            },
            color: {
                type: String,
                default: '#07c160'
            },
            theme: {
                type: String,
                default: 'normal'
            },
            title: {
                type: String,
                default: '"甜聘"隐私保护指引'
            }
        },
        data() {
            return {
                show_privacy: false,
                PrivacyName: ""
            }
        },
        mounted() {
            let _this = this
            wx.getPrivacySetting({
                success(res) {
                    if (res.errMsg == "getPrivacySetting:ok") {
                        // 弹出隐私授权协议
                        _this.show_privacy = res.needAuthorization
                    }
                    _this.PrivacyName = res.privacyContractName
                }
            })
        },
        methods: {
            // 拒绝隐私协议
            onExitPrivacy() {
                uni.showToast({
                    title: '必须同意后才可以继续使用当前小程序',
                    icon: 'none'
                })
            },
            // 打开隐私协议
            onOpenPrivacy() {
                wx.openPrivacyContract({
                    fail: () => {
                        wx.showToast({
                            title: '遇到错误',
                            icon: 'error'
                        })
                    }
                })
            },
            // 同意隐私协议
            onHandleAgree() {
                let _this = this
                _this.show_privacy = false
            }
        }
    }
</script>
<style lang="scss">
    // 纵向主题
    .theme-direction {
        .theme-content {
            .title {
                text-align: center;
                color: #333;
                font-weight: bold;
                font-size: 32rpx;
            }

            .des {
                font-size: 26rpx;
                color: #666;
                margin-top: 40rpx;
                text-align: justify;
                line-height: 1.6;

                .link {
                    text-decoration: underline;
                }
            }


            .btns {
                margin-top: 48rpx;
                display: flex;
                justify-content: space-around;
                
                .item {
                    justify-content: space-between;
                    width: 220rpx;
                    height: 80rpx;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    border-radius: 16rpx;
                    box-sizing: border-box;
                    border: none;
                    font-size: 32rpx;
                }

                .reject {
                    width: 100%;
                    background: #f4f4f5;
                    color: #909399;
                    
                }
                .agree {
                    width: 100%;
                    color: #fff;
                    margin-left: 30rpx;
                }
            }
        }
    }

    // 默认主题1

    .theme-normal {
        .theme-content {
            .title {
                text-align: center;
                color: #333;
                font-weight: bold;
                font-size: 32rpx;
            }

            .des {
                font-size: 26rpx;
                color: #666;
                margin-top: 40rpx;
                text-align: justify;
                line-height: 1.6;

                .link {
                    color: #07c160;
                    text-decoration: underline;
                }
            }


            .btns {
                margin-top: 48rpx;
                display: flex;

                .item {
                    justify-content: space-between;
                    width: 244rpx;
                    height: 80rpx;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    border-radius: 16rpx;
                    box-sizing: border-box;
                    border: none;
                }

                .reject {
                    background: #f4f4f5;
                    color: #909399;
                }

                .agree {
                    background: #07c160;
                    color: #fff;
                }
            }
        }
    }

    .theme {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        z-index: 9999999;
        display: flex;
        align-items: center;
        justify-content: center;

        .theme-content {
            width: 632rpx;
            padding: 48rpx;
            box-sizing: border-box;
            background: #fff;
            border-radius: 16rpx;
        }
    }

    /* 无样式button */
    .btn-normal {
        display: block;
        margin: 0;
        padding: 0;
        line-height: normal;
        background: none;
        border-radius: 0;
        box-shadow: none;
        border: none;
        font-size: unset;
        text-align: unset;
        overflow: visible;
        color: inherit;
    }

    .btn-normal:after {
        border: none;
    }

    .btn-normal.button-hover {
        color: inherit;
    }

    button:after {
        content: none;
        border: none;
    }
</style>
xh-privacy.vue

 

标签:uniapp,none,自定义,color,微信,align,content,font,border
From: https://www.cnblogs.com/zhangyouwu/p/17804820.html

相关文章

  • 【PyTorch 卷积】实战自定义的图片归类
    前言        卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络,是深度学习的代表算法之一,它通过卷积层、池化层、全连接层等结构,可以有效地处理如时间序列和图片数据等。关于卷积的概念网络上也比较多,这里就不一一描述了。实战为主当然要从实际问题出发,用代码......
  • 手机通讯录好备份,那微信通讯录怎么备份出来
    6-8众所周知的是,手机通讯录是很好备份的,但是微信不行,手机本身就带有备份功能,换手机可以快速地迁移通讯录,比如下面这个就是小米手机自带的备份功能,简单好用但是现在生意可都在微信上做了,微信又有封号、交接工作的可能,微信上的通讯录怎么导出来,就是个大问题,因为微信本身就不提供这种......
  • 有什么可以自动保存微信收到的图片和视频的方法么
    8-1在一些有外勤工作的公司里,经常会需要在外面工作的同事把工作情况的图片发到指定微信或者指定的微信群里,以记录工作进展等,或者打卡等,对于外勤人员来说,也就发个图片的事,但是对于在公司里收图片的人来说,可能是个麻烦的活。因为有可能每天要保存上千张图片,或者视频,要是都靠人工保存......
  • PC企业微信hook接口,通过查询添加外部联系人教程
    简要描述通过查询添加为联系人(外部联系人)操作码102008请求说明参数名必选类型说明type是int类型addType是string类型14微信用户1企业用户user_id是string用户idcontent是string添加请求语openid是string标识syncKey是string同步key请求示例{"type":102008,"data":{"a......
  • 禅道18.0_beta如何在项目需求列表页面通过自定义字段搜索
    里面的字段实际上是从product模块取的,只需要扩展product的config就可以了在extension/custom新建product/ext/config/test.php名字随意<?php$config->product->search['fields']['extrarNumber']=$lang->story->extraNumber;$config->product->......
  • Allure企业级报告定制化自定义logo,中文标题,模块名,用例名,用例详细的测试数据如用例日志
    【自定义logo】进入Allure的安装路径,找到config目录。在config目录下,找到allure.yml文件,并打开该文件。在allure.yml文件中,添加custom-logo-plugin选项。进入Allure的安装路径,找到plugins目录下的custom-logo-plugin目录。在custom-logo-plugin目录下,找到static目录,并将自己需要展......
  • Django实战项目-学习任务系统-自定义URL拦截器
    接着上期代码框架,6个主要功能基本实现,剩下的就是细节点的完善优化了。首先增加URL拦截器,你不会希望没有登录用户就可以进入用户主页各种功能的,所以增加URL拦截器可以解决这个问题。Django框架本身也有URL拦截器,但是因为本系统用户模型跟Django框架本身用户模型不匹配,所以没有用,......
  • 搜狗输入法自定义输入短语
      ......
  • QT高级(1)QTableView自定义委托集合,一个类实现若干委托
    @目录1同系列文章2功能3源码1同系列文章QT中级(1)QTableView自定义委托(一)实现QSpinBox、QDoubleSpinBox委托QT中级(2)QTableView自定义委托(二)实现QProgressBar委托QT中级(3)QTableView自定义委托(三)实现QCheckBox委托并且将QCheckBox居中QT中级(4)QTableView自定义委托(四)实现QDateTi......
  • 创建自定义的 Angular 模块
    原文:https://www.jianshu.com/p/e90746c4e979在之前的一篇文章中,我们知道,从组件的角度看,一个Angular应用可以看作是按树形结构组织的组件集合。组件树的根结点,是主组件,作为全局组件的占位符,可以包含其他功能组件及其子组件。在Angular应用中,一个组件会承担一个应用功能的......