收藏
回答

无法触发onNeedPrivacyAuthorization回调?

为什么getPrivacySetting返回的是true,依然无法触发onNeedPrivacyAuthorization事件?

回答关注问题邀请回答
收藏

1 个回答

  • 长安
    长安
    2023-08-16

    刚写了一段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>
    
    2023-08-16
    有用 1
    回复 8
    • 🧐 🧐
      🧐 🧐
      2023-08-16
      这样搞真的很麻烦,是不是每一个隐私接口我都要去写一个弹窗,而且触发的时机还不一样
      2023-08-16
      回复
    • 长安
      长安
      2023-08-16回复🧐 🧐
      最近小程序的动作比较大,应该是需要备案的原因,如果按照app的审核来说的话是这样的,我暂时是在进来的首页里调用,不给拒绝的机会,不知道能不能审核通过
      2023-08-16
      回复
    • 🧐 🧐
      🧐 🧐
      2023-08-16回复长安
      感觉应该过不了审核,你不给用户拒绝的机会按照小程序那边来说就是强制用户同意了😂,太麻烦了
      2023-08-16
      回复
    • 陈俊
      陈俊
      2023-08-16回复🧐 🧐
      一般也写不了几个,还是在需要的时候去判断是否要弹阅读隐私的弹窗
      2023-08-16
      回复
    • 陈俊
      陈俊
      2023-08-16回复🧐 🧐
      难道不是一样的吗?
      2023-08-16
      回复
    查看更多(3)
登录 后发表内容