uniapp:打包ios配置隐私协议框

使用uniapp打包ios 上架商店需要配置隐私协议政策弹窗。当用户点击确定后才能继续操作。

首先manifest.json中配置使用原生隐私政策提示框是不支持ios的。不用勾选

解决思路:

1、新建页面:iosLogin.vue,pages.json中 这个页面需要放在第一位

html 复制代码
<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

js 复制代码
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
},

提示:如果项目有用到消息提示类的功能,在确认隐私政策前可能会有弹窗提示 是否接收APP消息,这个不影响上架。

相关推荐
2601_9588151617 小时前
面向视疲劳缓解的手机贴膜光学系统设计:scinique®双护协同技术的工程实现
ios·智能手机·iphone·圆偏振光护眼·磁控溅射ar抗反射·iphone护眼膜
织_网17 小时前
UniApp 快速集成个推推送(UniPush2.0)完整实战教程
uni-app
星星~笑笑18 小时前
vue 超简单 oss分片上传文件 大文件上传阿里云
前端·javascript·vue.js·uni-app
吠品19 小时前
Go赋能:HTTP大文件秒传与断点续接
ios·iphone·xcode
唐诺1 天前
【无标题】
ios·属性包装器·wrappers
jingling5551 天前
uni-app农场地图——高德 JS API 实现全解析(天地图影像作为layers)
uni-app
测试员周周1 天前
【Appium 系列】第14节-断言与验证 — Validator 的设计
android·人工智能·python·功能测试·ios·单元测试·appium
2501_916008892 天前
Mac 上生成 AppStoreInfo.plist 文件,App Store 上架
android·macos·ios·小程序·uni-app·iphone·webview
__zRainy__2 天前
uni-app 全局容器实战系列(四):全局容器动态调用设计
uni-app