uniapp--- 微信小程序 用户隐私新规相关代码调整【vue3+ts+uView框架】

这篇具有很好参考价值的文章主要介绍了uniapp--- 微信小程序 用户隐私新规相关代码调整【vue3+ts+uView框架】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uniapp— 微信小程序 用户隐私新规相关代码调整【vue3+ts+uView框架】

官方公告地址:https://developers.weixin.qq.com/community/develop/doc/00042e3ef54940ce8520e38db61801
用户隐私保护指引填写说明地址:https://developers.weixin.qq.com/miniprogram/dev/framework/user-privacy/

1)需要在9月15前更新完毕,否则会无法使用获取手机号 手机相册等相关信息。
2)微信小程序开发工具需要3.0版本以上
3)因现在uniapp官方未添加相关API,所以还是要先使用微信官方的

1. 在manifest.json文件中添加 “usePrivacyCheck”: true

"__usePrivacyCheck__": true

uniapp--- 微信小程序 用户隐私新规相关代码调整【vue3+ts+uView框架】,typescript,vue,前端,微信小程序

2. 在hooks(如没有可以在自己的封装文件库下进行新建)里面新建一个ts文件封“查询隐私授权情况”的方法 【wx.getPrivacySetting】
ps:如果没有封装缓存那么可以直接用 uni.setStorageSync

import cache from '@/utils/cache'
const PrivacyProtocol = {
    needAuthorization: false, 
    privacyContractName: ''
}
export function checkUserPrivacyProtocol() {
    if (wx.getPrivacySetting) {
        wx.getPrivacySetting({
            success: (res:any) => {
                console.log('协议显示的值',res)
                PrivacyProtocol.needAuthorization = res.needAuthorization
                if (res.needAuthorization) {
                    // 需要弹出隐私协议  
                    PrivacyProtocol.privacyContractName = res.privacyContractName
                }
                cache.set('PrivacyProtocol', PrivacyProtocol)
            }
        })
    }
}
*2.1 如果有朋友想用这个@/utils/cache 下面是封装缓存的完整代码(cache.ts)*
const cache = {
    key: 'app_',
    //设置缓存(expire为缓存时效)
    set(key: string, value: any, expire?: string) {
        key = this.getKey(key)
        let data: any = {
            expire: expire ? this.time() + expire : '',
            value
        }

        if (typeof data === 'object') {
            data = JSON.stringify(data)
        }
        try {
            uni.setStorageSync(key, data)
        } catch (e) {
            return null
        }
    },
    get(key: string) {
        key = this.getKey(key)
        try {
            const data = uni.getStorageSync(key)
            if (!data) {
                return null
            }
            const { value, expire } = JSON.parse(data)
            if (expire && expire < this.time()) {
                uni.removeStorageSync(key)
                return null
            }
            return value
        } catch (e) {
            return null
        }
    },
    //获取当前时间
    time() {
        return Math.round(new Date().getTime() / 1000)
    },
    remove(key: string) {
        key = this.getKey(key)
        uni.removeStorageSync(key)
    },
    getKey(key: string) {
        return this.key + key
    },
    clear() {
        //清除全部缓存
        uni.clearStorageSync()
    }
}

export default cache

3. 在App.vue页面中调用checkUserPrivacyProtocol 方法

PS: 返回以及存入缓存的结果为 { needAuthorization: true/false, privacyContractName: ‘《xxx隐私保护指引》’ 。needAuthorization为true的时候代表需要进行隐私授权

import { onLaunch} from '@dcloudio/uni-app'
import { checkUserPrivacyProtocol } from '@/hooks/checkUserPrivacyProtocol'
onLaunch(async () => {
	await checkUserPrivacyProtocol() //检查小程序是否同意隐私协议
})

4. 新建隐私弹窗的组件privacy-popup,使用了uView框架以及Tailwind CSS IntelliSense

<template>
    <u-popup v-model="showPrivacyPopup" :border-radius="10" mode="center" @close="showPrivacyPopup = false" width="600">
        <view class="w-full px-[40rpx] py-[40rpx] box-border">
            <view class="w-full text-center text-lg mb-[40rpx]">温馨提示</view>
            <view>
                在你使用服务之前,请仔细阅读<text class="text-[#3478F7]" @click="onClickPrivacyPopupTitle">{{
                    PrivacyProtocol.privacyContractName }}</text>。如果你同意{{ PrivacyProtocol.privacyContractName
    }},请点击“同意”开始使用。
            </view>
            <view class="flex justify-between" style="margin-top: 40rpx">
                <view class="w-[48%]">
                    <button @click="handleRefusePrivacyAuthorization">拒绝</button>
                </view>
                <view class="w-[48%] agree">
                    <button id="agree-btn" class="btn-agree" open-type="agreePrivacyAuthorization"
                        @agreeprivacyauthorization="handleAgreePrivacyAuthorization">
                        同意
                    </button>
                </view>
            </view>
        </view>
    </u-popup>
</template>
<script setup lang="ts">
import { ref, reactive } from 'vue'
import { onLoad } from '@dcloudio/uni-app'
import cache from '@/utils/cache'
let resolvePrivacyAuthorization: any
const showPrivacyPopup = ref(false) // 是否需要弹出协议

const PrivacyProtocol = reactive(cache.get('PrivacyProtocol'))

// 打开弹窗
function openPrivacyPopup() {
    showPrivacyPopup.value = true
}
// 关闭弹窗
function closePrivacyPopup() {
    showPrivacyPopup.value = false
}
// 用户点击同意
function handleAgreePrivacyAuthorization() {
    console.log('点击了同意')
    resolvePrivacyAuthorization({
        buttonId: 'agree-btn',
        event: 'agree'
    })
    showPrivacyPopup.value = false
}
// 用户点击拒绝
function handleRefusePrivacyAuthorization() {
    uni.showModal({
        content:
            '如果拒绝,我们将无法获取您的信息, 包括手机号、位置信息、相册等该小程序十分重要的功能,您确定要拒绝吗?',
        success: (res) => {
            if (res.confirm) {
                console.log('点击了拒绝', resolvePrivacyAuthorization)
                resolvePrivacyAuthorization({
                    event: 'disagree'
                })
                closePrivacyPopup()
                uni.$u.toast('用户拒绝了隐私请求,无法使用相关微信的Api')
            }
        }
    })
}
// 打开隐私协议
function onClickPrivacyPopupTitle() {
    wx.openPrivacyContract({})
}

// 监听调用微信api的函数
function saveWXCallBack() {
    if (wx.onNeedPrivacyAuthorization) {
        wx.onNeedPrivacyAuthorization((resolve: any) => {
            openPrivacyPopup()
            resolvePrivacyAuthorization = resolve
        })
    }
}
onLoad(async () => {
    await saveWXCallBack()
})
</script>
<style lang="scss" scoped>
button {
    height: 80rpx;
    text-align: center;
    line-height: 80rpx !important;
    font-size: 28rpx;
    color: #101010;
    border: 1px solid #eee;
}

.agree button {
    background-color: #3478f7;
    color: #fff;
}

button::after {
    border: none;
}
</style>

6. 在需要用到隐私协议的地方引用,(只需同意一次即可,同意后其他地方不会再吊起)【如我在获取手机号授权时调用,当点击授权时,会先提示下面弹窗,同意后才能进行授权】

 <privacy-popup></privacy-popup>

uniapp--- 微信小程序 用户隐私新规相关代码调整【vue3+ts+uView框架】,typescript,vue,前端,微信小程序文章来源地址https://www.toymoban.com/news/detail-698242.html

到了这里,关于uniapp--- 微信小程序 用户隐私新规相关代码调整【vue3+ts+uView框架】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • uniapp新版微信小程序用户隐私协议授权

    manifest.json文件中进行配置 App.vue中配置 判断用户有没有进行过隐私授权 编写组件 使用组件

    2024年02月09日
    浏览(58)
  • 微信小程序添加用户隐私保护指引

    前段时间不知道大家有没有发现很多小程序都添加了用户隐私保护提示,这是因为微信官方为规范开发者的用户个人信息处理行为,保障用户合法权益,小程序、插件中涉及处理用户个人信息的开发者,均需补充相应用户隐私保护指引。那么如何添加用户保护指引提示呢?相

    2024年04月11日
    浏览(66)
  • 微信小程序接入用户隐私协议提示教程

    接入前须知 官方对接入隐私提示进行了操作步骤 1、 pc小程序 管理端 设置 用户保护指引设置 2、 对开启的保护指引 进行 填写 3、 查看官方示例 进行接入 官方用户授权事件说明 展示示例 第一步:熟悉这几个api 功能点 wx.getPrivacySetting 查询微信有待同意的隐私政策信息 (需

    2024年02月04日
    浏览(67)
  • 微信小程序隐私协议相关接口实际使用方式

    页面加载时自动弹窗,同意后可以使用对应功能,不同意退出页面或者隐藏相关功能。 这种情况下,需要在onLoad里使用wx.getPrivacySetting获取隐私授权情况,没授权时弹出隐私弹窗。完整代码如下 在使用到隐私接口时弹出隐私弹窗,同时隐私接口的流程会被挂起,用户同意后会

    2024年02月09日
    浏览(42)
  • 用户隐私问题小程序审核不通过,微信小程序隐私保护开发指南

    目录 小程序隐私协议开发指南 一、功能介绍 二、接入流程 1. 配置《小程序用户隐私保护指引》 2. 主动查询隐私授权同步状态以及展示隐私协议 3. 被动监听隐私接口需要用户授权事件 4. 清空历史同步状态 三、其他说明 四、完整示例demo 五、常见错误说明 uniapp小程序特别指

    2024年02月04日
    浏览(54)
  • 微信小程序提交审核用户隐私协议怎么写?

    今天给大家出个隐私协议的模板供大家参考,内容如下: 为了分辨用户,开发者将在获取你的明示同意后,收集你的微信昵称、头像 为了显示距离,开发者将在获取你的明示同意后,收集你的位置信息。 开发者收集你的地址,用于获取位置信息。 开发者收集你的发票信息,

    2024年02月06日
    浏览(65)
  • 微信小程序添加用户授权《隐私保护协议》

    官方文档:wx.onNeedPrivacyAuthorization(function listener) | 微信开放文档 微信小程序平台上需要进行隐私配置,审核成功后 大概半小时左右 才会生效。 小程序公众平台 --- 设置 --- 服务内容声明 --- 用户隐私保护指引(提交审核时,也会检测是否采集用户隐私,有用到隐私接口的话需

    2024年02月08日
    浏览(57)
  • 微信小程序的用户隐私保护指引设置

    1.开发者处理的信息 根据法律规定,开发者仅处理实现小程序功能所必要的信息。 开发者收集你选中的照片或视频信息,用于 提前上传减少上传时间 开发者收集你选中的文件,用于 提前上传减少上传时间 为了 分辨用户 ,开发者将在获取你的明示同意后,收集你的微信昵称

    2023年04月21日
    浏览(69)
  • uniapp微信小程序隐私保护指引设置

    隐私政策不做过多阐述具体看公告,公告看不明白的就看下方实现吧,毕竟完成工作为主→_→ 关于小程序隐私保护指引设置的公告 关于小程序隐私保护指引设置的再次公告 在微信公众平台配置隐私保护后,当用户使用小程序时检测是否授权了,让用户授权相关隐私权限,用

    2024年02月02日
    浏览(61)
  • uniapp 微信小程序添加隐私保护指引

    隐私弹窗: 1. 启用隐私相关功能在manifest.json文件中配置  __usePrivacyCheck__: true : 2. 创建组件: 2. 在需要授权的页面引入改组件 例: PS: 也可使用获取手机号和隐私政策藕合方式 ,这样在用户 拒绝隐私协议 后 ,再次点击授权手机号 可继续弹出授权弹窗,直至用户同意协议

    2024年02月10日
    浏览(65)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包