uniapp: Package ios configuration privacy agreement box

Using uniapp to package ios and put it on the store needs to configure the privacy agreement policy pop-up window. Only when the user clicks OK can the operation continue.
First of all, the configuration manifest.json in 使用原生隐私政策提示框 does not support ios. No need to check.
Insert image description here

Solutions:

1. Create a new page: iosLogin.vue, this page needs to be placed first in pages.json

<template>
	<view class="dialog">
		<view class="bg"></view>
		<view class="title">服务协议和隐私政策</view>
		<view class="content">
			请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。你可阅读
			<text class="link" @click="linkClick(1)">《服务协议》</text><text class="link" @click="linkClick(2)">《隐私政策》</text>
			了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。
		</view>
		<view class="btn">
			<button @click="disagree">不同意并退出</button>
			<button @click="agree">同意</button>
		</view>
	</view>
</template>
<script>
	export default {
      
      
		data() {
      
      
			return {
      
      
				refCode:''
			}
		},
		onLoad(option) {
      
      
			if (option.refCode) {
      
      
				this.refCode = option.refCode;
				uni.setStorageSync('refCode', option.refCode);
			}
		},
		methods:{
      
      
			linkClick(num) {
      
      
				if(num == 1){
      
      
					let name1 = encodeURIComponent('用户协议')
					plus.runtime.openURL(`https://h5.******.com.cn/pages/login/xieyi?title=${ 
        name1}&type=user_agreement`)
				}else{
      
      
					let name2 = encodeURIComponent('隐私政策')
					plus.runtime.openURL(`https://h5.******.com.cn/pages/login/xieyi?title=${ 
        name2}&type=privacy_agreement`)
				}
			},
			agree() {
      
      
				uni.setStorageSync('agree', 1) // 设置缓存,下次进入应用不再弹出
				this.$go(4,'/pages/index/index?refCode='+this.refCode); // 跳转首页
			},
			disagree(){
      
      
				// #ifdef APP-PLUS
				plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
				// #endif
			}
		}
	}
</script>

<style lang="scss">
	page {
      
      
		background: url('../../static/1.png')no-repeat left top #fff;
		background-size: 750rpx 1334rpx;
		position: relative;
		z-index: 2;
		.bg{
      
      
			position: fixed;
			left: 0;
			top: 0;
			z-index: -1;
			background: rgba(0, 0, 0, .5);
			width: 750rpx;
			height: 100vh;
		}
	}

	// 弹窗样式
	.dialog {
      
      
		margin: 0 auto;
		margin-top: calc(30vh);
		width: 600rpx;
		border-radius: 16rpx;
		background-color: #fff;
		
		.title {
      
      
			text-align: center;
			line-height: 80rpx;
			font-size: 32rpx;
			font-weight: 600;
		}

		.content {
      
      
			padding: 0 32rpx;
			text-indent: 1em;

			.link {
      
      
				color: #FF6840;
			}
		}

		.btn {
      
      
			display: flex;
			flex: 1;

			uni-button {
      
      
				margin: 0;
				flex: 1;
				background-color: #fff;
			}

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

app.vue

onLaunch: async function() {
    
    
	// #ifdef APP-PLUS
	const platform = uni.getSystemInfoSync().osName
	// 判断是不是ios,并且是否同意了隐私政策
	let agree = uni.getStorageSync('agree')
	if (platform === 'android') {
    
    
		plus.navigator.closeSplashscreen() // 关闭启动页
	} else {
    
    
		if(agree){
    
    
			uni.reLaunch({
    
    
				url: "/pages/index/index",
				success() {
    
    
					plus.navigator.closeSplashscreen()
				}
			})
		}else{
    
    
			console.log('ios第一次启动需要同意隐私政策');
			// ios单独进行隐私政策验证
			uni.navigateTo({
    
    
				url: "/pages/login/iosLogin",
				success() {
    
    
					plus.navigator.closeSplashscreen()
				}
			})
		}
	}
	// #endif
},

Tip: If the project has a message prompt function, there may be a pop-up window prompting whether to receive APP messages before confirming the privacy policy. This does not affect the listing.

Guess you like

Origin blog.csdn.net/qq_40745143/article/details/134281533