小程序
小游戏
企业微信
微信支付
扫描小程序码分享
为什么getPrivacySetting返回的是true,依然无法触发onNeedPrivacyAuthorization事件?
1 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
刚写了一段dome,可以参考参考,一起交流
<template> <uni-popup ref="modelRef" type="center" :is-mask-click="false"> <view class="model"> <view class="model-title">个人隐私保护说明</view> <view class="model-content"> 欢迎您使用xxxx,为了更好的为您提供服务,请先阅读并同意<text @click="openPrivacyContract">《隐私保护说明》</text> </view> <button class="model-btn" id="agree-btn" open-type="agreePrivacyAuthorization" @agreeprivacyauthorization="handleAgreePrivacyAuthorization">我知道了</button> </view> </uni-popup> </template> <script setup> import { ref, nextTick, onMounted } from "vue"; const modelRef = ref(); const resolvePrivacyAuthorization = ref(); // 获取协议设置 wx.getPrivacySetting({ success: v => { if(v.needAuthorization || true) { nextTick(() => { modelRef.value?.open(); }) } } }) wx.onNeedPrivacyAuthorization(resolve => { resolvePrivacyAuthorization.value = resolve; }) // 模拟请求 wx.requirePrivacyAuthorize(); // 统一上报 const handleAgreePrivacyAuthorization = (e) => { resolvePrivacyAuthorization.value && resolvePrivacyAuthorization.value({ buttonId: 'agree-btn', event: 'agree' }); modelRef.value?.close(); } const openPrivacyContract = () => { wx.openPrivacyContract(); } </script> <style lang="scss"> .model { width: 640rpx; background-color: #ffffff; border-radius: 24rpx; overflow: hidden; &-title { font-size: 32rpx; font-weight: 600; color: #212121; text-align: center; padding-top: 24rpx; } &-content { font-size: 28rpx; font-weight: 400; line-height: 40rpx; color: #ADADAD; text-align: center; margin-top: 24rpx; padding: 0 48rpx; word-break: break-all; line-height: 52rpx; > text { color: #5BC8B0; } } &-btn { margin-top: 40rpx; display: flex; align-items: center; justify-content: center; color: #5BC8B0; background-color: #fff; border-top: 1rpx solid #EBEDF0; border-radius: 0; } } </style>
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
刚写了一段dome,可以参考参考,一起交流
<template> <uni-popup ref="modelRef" type="center" :is-mask-click="false"> <view class="model"> <view class="model-title">个人隐私保护说明</view> <view class="model-content"> 欢迎您使用xxxx,为了更好的为您提供服务,请先阅读并同意<text @click="openPrivacyContract">《隐私保护说明》</text> </view> <button class="model-btn" id="agree-btn" open-type="agreePrivacyAuthorization" @agreeprivacyauthorization="handleAgreePrivacyAuthorization">我知道了</button> </view> </uni-popup> </template> <script setup> import { ref, nextTick, onMounted } from "vue"; const modelRef = ref(); const resolvePrivacyAuthorization = ref(); // 获取协议设置 wx.getPrivacySetting({ success: v => { if(v.needAuthorization || true) { nextTick(() => { modelRef.value?.open(); }) } } }) wx.onNeedPrivacyAuthorization(resolve => { resolvePrivacyAuthorization.value = resolve; }) // 模拟请求 wx.requirePrivacyAuthorize(); // 统一上报 const handleAgreePrivacyAuthorization = (e) => { resolvePrivacyAuthorization.value && resolvePrivacyAuthorization.value({ buttonId: 'agree-btn', event: 'agree' }); modelRef.value?.close(); } const openPrivacyContract = () => { wx.openPrivacyContract(); } </script> <style lang="scss"> .model { width: 640rpx; background-color: #ffffff; border-radius: 24rpx; overflow: hidden; &-title { font-size: 32rpx; font-weight: 600; color: #212121; text-align: center; padding-top: 24rpx; } &-content { font-size: 28rpx; font-weight: 400; line-height: 40rpx; color: #ADADAD; text-align: center; margin-top: 24rpx; padding: 0 48rpx; word-break: break-all; line-height: 52rpx; > text { color: #5BC8B0; } } &-btn { margin-top: 40rpx; display: flex; align-items: center; justify-content: center; color: #5BC8B0; background-color: #fff; border-top: 1rpx solid #EBEDF0; border-radius: 0; } } </style>