封装微信小程序隐私信息授权

隐私 代码 html (modal  组件再后面封装有提供)

<modal isShow="{{show}}">
    <view class="privacy-auth-dialog">
        <view class="title">温馨提示</view>
        <view class="content">
            <view>
                为切实保护用户隐私,优化用户体验,我们更新了
                <view class="active" bindtap="openPrivacyContract"> 《 XXXX你的产品名 隐私保护指引》 </view>,
                您可点击了解详情。
            </view>
            <view>
                为向您提供服务,您需要同意更新后的
                <view class="active" bindtap="openPrivacyContract"> 《XXXX你的产品名 隐私保护指引》 </view>
                。我们将严格按照法律法规采取一切必要措施,以保障您的信息安全。
            </view>
        </view>
        <view class="footer">
            <view class="reject" hover-class="hover-style-3" hover-stay-time="100" bindtap="handleReject">
                拒绝并退出
            </view>
            <button id="argee-btn" open-type="agreePrivacyAuthorization" class="btn" bindtap="handleAgree">同意</button>
        </view>
    </view>
</modal>

隐私 代码  css


.privacy-auth-dialog {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: #fff;
    border-radius: 32rpx;
    width: 650rpx;
    height: auto;
    overflow: hidden;
    .title {
        padding: 32rpx;
        font-size: 30rpx;
        font-weight: bold;
        border-bottom: 1rpx solid #eee;
        text-align: center;
    }
    .content {
        padding: 32rpx;
        font-size: 28rpx;
        word-break: break-all;
        word-wrap: break-word;
        .active {
            display: inline-block;
            color: $default-color;
        }
        border-bottom: 1rpx solid #eee;
    }
    .footer {
        display: flex;
        justify-content: space-between;
        align-items: center;
        .reject {
            flex: 1;
            height: 92rpx;
            line-height: 92rpx;
            text-align: center;
            font-size: 32rpx;
            border-right: 1rpx solid #eee;
        }
        .btn {
            flex: 1;
            color: $default-color;
        }
    }
}

// 初始化按钮样式
button::after {
    border: none !important;
}
button {
    border-radius: 0;
    background-color: transparent;
    padding-top: 0;
    padding-right: 0;
    padding-bottom: 0;
    padding-left: 0;
}

隐私  js 代码

Component({
    // 组件的属性列表
    properties: {
        isDirectHandle: {
            type: Boolean,
            value: false,
            observer(val) {
                if (!val || !wx.getPrivacySetting) return
                wx.getPrivacySetting({
                    success: (res) => {
                        if (res.needAuthorization) {
                            this.showDialog()
                        }
                    },
                })
            },
        },
    },

    // 组件的初始数据
    data: {
        show: false,
    },
    //  全局样式生效
    options: {
        addGlobalClass: true,
    },
    // 组件的生命周期
    lifetimes: {
        // 在组件实例刚刚被创建时执行
        created() {
            if (wx.onNeedPrivacyAuthorization) {
                wx.onNeedPrivacyAuthorization((resolve) => {
                    this.resolve = resolve
                    this.showDialog()
                })
            }
        },
        // 在组件实例进入页面节点树时执行
        attached() {},
        // 在组件在视图层布局完成后执行
        ready() {},
        // 在组件实例被从页面节点树移除时执行
        detached() {},
    },

    // 组件的方法列表
    methods: {
        showDialog() {
            this.setData({ show: true })
        },
        hideDialog() {
            this.setData({ show: false })
        },

        // 跳转至隐私协议页面。
        openPrivacyContract() {
            wx.openPrivacyContract()
        },
        // 拒绝
        handleReject() {
            this.hideDialog()
            this.resolve && this.resolve({ event: "disagree" })
            this.triggerEvent("handlePrivacy", { event: "disagree" })
        },
        // 同意
        handleAgree() {
            this.hideDialog()
            this.resolve && this.resolve({ buttonId: "argee-btn", event: "agree" })
            this.triggerEvent("handlePrivacy", { event: "agree" })
        },
    },
})

使用方法


<privacy-auth-dialog isDirectHandle="{{true}}" bind:handlePrivacy="handlePrivacy"></privacy-auth-dialog>

// handlePrivacy 会返回用户的操作结果

model 的封装

html 

<view class="container" catch:touchmove="" catch:tap="handleClickMask" wx:if="{{isShow}}">
    <view catch:tap>
        <slot></slot>
    </view>
</view>

css

.container {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 10086;
    animation: showModal ease 0.3s;
    background: rgba(0, 0, 0, 0.7);
}

@keyframes showModal {
    0% {
        opacity: 0;
    }
    100% {
        opacity: 1;
    }
}

js

Component({
    data: {},
    properties: {
        isShow: {
            type: Boolean,
            value: false,
        },
        canClose: {
            type: Boolean,
            value: true,
        },
    },
    observers: {},
    methods: {
        handleClickMask() {
            if (!this.data.canClose) return
            this.setData({
                isShow: false,
            })
            this.triggerEvent("close")
        },
    },
})

拿走不谢

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

清云随笔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值