在uniapp中Android能够运用uniapp内置的隐私方针弹窗,能够在运用程序发动前弹出弹窗。但iOS并没有,因此需求经过页面的方法进行设置,这种方法会在运用发动后弹窗弹窗。
- Android有必要运用uniapp装备的隐私方针弹窗,才干经过运用市场的审核。隐私方针上架留意事项
- 本文是uniapp创立的vue3+ts项目
Android设置隐私方针
官方文档:装备方法与字段内容
第一步:设置manifest
- 勾选运用隐私方针后,根目录下会主动生成androidPrivacy.json文件
第二步:修正androidPrivacy.json文件使其满足要求
- 留意:androidPrivacy.json文件中不能有注释,下列代码为了检查便利增加了注释,必定不能有注释!!
{
"version"https://juejin.im/post/7189154906727514173/: "1"https://juejin.im/post/7189154906727514173/,
// 国内运用市场有必要是template形式,可取值template、none
"prompt"https://juejin.im/post/7189154906727514173/: "template"https://juejin.im/post/7189154906727514173/,
"title"https://juejin.im/post/7189154906727514173/: "服务协议和隐私方针"https://juejin.im/post/7189154906727514173/,
// 《隐私方针》用a标签包裹,点击能够跳转对应的网站。假如隐私方针放在static目录下,写为:<a href="https://juejin.im/post/7189154906727514173/static/privacy.html">《隐私方针》</a>
"message"https://juejin.im/post/7189154906727514173/: " 请你必须审慎阅览、充沛了解“服务协议”和“隐私方针”各条款,包含但不限于:为了更好的向你提供服务,咱们需求搜集你的设备标识、操作日志等信息用于剖析、优化运用功能。<br/> 你可阅览<a href="https://juejin.im/post/7189154906727514173/">《服务协议》</a>和<a href="https://juejin.im/post/7189154906727514173/">《隐私方针》</a>了解详细信息。假如你赞同,请点击下面按钮开始承受咱们的服务。"https://juejin.im/post/7189154906727514173/,
"buttonAccept"https://juejin.im/post/7189154906727514173/: "赞同并承受"https://juejin.im/post/7189154906727514173/,
"buttonRefuse"https://juejin.im/post/7189154906727514173/: "暂不赞同"https://juejin.im/post/7189154906727514173/,
// HX 3.4.13之后版本新增,system 运用系统webview 翻开隐私协议链接,默认运用uni-app内置web组件
"hrefLoader"https://juejin.im/post/7189154906727514173/:"default" ,
// 点击不赞同时,弹出二次提示框,如不需求,删除second字段即可
"second"https://juejin.im/post/7189154906727514173/: {
"title"https://juejin.im/post/7189154906727514173/: "承认提示"https://juejin.im/post/7189154906727514173/,
"message"https://juejin.im/post/7189154906727514173/: " 进入运用前,你需先赞同<a href="https://juejin.im/post/7189154906727514173/">《服务协议》</a>和<a href="https://juejin.im/post/7189154906727514173/">《隐私方针》</a>,否则将退出运用。"https://juejin.im/post/7189154906727514173/,
"buttonAccept"https://juejin.im/post/7189154906727514173/: "赞同并继续"https://juejin.im/post/7189154906727514173/,
"buttonRefuse"https://juejin.im/post/7189154906727514173/: "退出运用"
},
// 样式设置
"styles"https://juejin.im/post/7189154906727514173/: {
"backgroundColor"https://juejin.im/post/7189154906727514173/: "#00FF00"https://juejin.im/post/7189154906727514173/,
"borderRadius"https://juejin.im/post/7189154906727514173/:"5px"https://juejin.im/post/7189154906727514173/,
"title"https://juejin.im/post/7189154906727514173/: {
"color"https://juejin.im/post/7189154906727514173/: "#ff00ff"
},
"buttonAccept"https://juejin.im/post/7189154906727514173/: {
"color"https://juejin.im/post/7189154906727514173/: "#ffff00"
},
"buttonRefuse"https://juejin.im/post/7189154906727514173/: {
"color"https://juejin.im/post/7189154906727514173/: "#00ffff"
}
}
}
作用
iOS设置隐私方针
官方文档:iOS渠道隐私与方针提示框实现留意问题
由于uniapp中,ios没有装备隐私方针的方法。本文首要采用的是:运用发动后,判别是否赞同过,没有赞同显现隐私方针的页面,用户赞同后回来,用户不赞同则退出。保证隐私方针页面的布景与发动图布景颜色共同,到达以假乱真作用。隐私方针页面运用nvue页面,进步渲染速度。
第一步:新建隐私方针页面
- 点击赞同,需求设置缓存,下次进入时,不用再弹窗
- 弹窗页面的布景色尽量与发动页布景色共同,能够实现无缝联接作用
<template>
<view class="dialog">
<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 setup lang="ts">
// 检查隐私协议或服务协议
const linkClick = (num: number): void => {
switch (num) {
case 1:
// 跳转服务协议
break
case 2:
// 跳转隐私方针
break
}
}
// 不赞同,退出运用
const disagree = (): void => {
// #ifdef APP-PLUS
plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
// #endif
}
// 赞同,回来上一页
const agree = (): void => {
uni.setStorageSync('agree', 1) // 设置缓存,下次进入运用不再弹出
uni.navigateBack()
}
</script>
<style lang="scss">
page {
background-color: rgba(0, 0, 0, 0.3); // 设置与发动页面相同的布景色,并设置必定透明度
overflow: hidden;
}
// 弹窗样式
.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: blue;
}
}
.btn {
display: flex;
flex: 1;
uni-button {
margin: 0;
flex: 1;
background-color: #fff;
}
uni-button::after {
border: none;
}
}
}
</style>
第二步:设置page.json
- 躲藏导航条
- 禁止回来
- 弹窗进入方法改为淡入
"pages"https://juejin.im/post/7189154906727514173/: [ //pages数组中第一项表明运用发动页,参阅:https://uniapp.dcloud.io/collocation/pages
{
"path"https://juejin.im/post/7189154906727514173/: "pages/index/index"https://juejin.im/post/7189154906727514173/, // 首页
"style"https://juejin.im/post/7189154906727514173/: {
"navigationBarTitleText"https://juejin.im/post/7189154906727514173/: "uni-app"
}
}
,{
"path" : "pages/iosPrivacy/iosPrivacy"https://juejin.im/post/7189154906727514173/, // 这个页面便是一个弹窗
"style" :
{
"navigationBarTitleText"https://juejin.im/post/7189154906727514173/: ""https://juejin.im/post/7189154906727514173/,
"enablePullDownRefresh"https://juejin.im/post/7189154906727514173/: false,
"navigationStyle"https://juejin.im/post/7189154906727514173/: "custom"https://juejin.im/post/7189154906727514173/, // 躲藏导航条
"disableSwipeBack"https://juejin.im/post/7189154906727514173/: true, // 禁用侧滑回来
"app-plus"https://juejin.im/post/7189154906727514173/: {
"animationType"https://juejin.im/post/7189154906727514173/: "fade-in"https://juejin.im/post/7189154906727514173/, // 弹窗进入方法
"popGesture"https://juejin.im/post/7189154906727514173/: "none"https://juejin.im/post/7189154906727514173/, // 封闭IOS屏幕左边滑动封闭当前页面的功能
"bounce"https://juejin.im/post/7189154906727514173/: "none"
}
}
}
],
第三步:设置manifest文件
- 再app-plus中装备,封闭主动封闭发动页,避免先显现首页,再进入弹窗页面
"splashscreen" : {
"autoclose" : false, // 主动封闭发动页
},
第四步:app.vue运用发动时判别
<script>
export default {
onLaunch: function() {
// #ifdef APP-PLUS
const platform = uni.getSystemInfoSync().osName
// 判别是不是ios,并且是否赞同了隐私方针
let agree = uni.getStorageSync('agree')
if (platform === 'android' || agree) {
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen() // 封闭发动页
// #endif
} else {
// ios独自进行隐私方针验证
uni.navigateTo({
url: "/pages/iosPrivacy/iosPrivacy",
success() {
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen() // 封闭发动页,解决先跳转首页再显现隐私方针的问题
// #endif
}
})
}
// #endif
}
}
</script>
第五步:制作自定义基座
- 本次过程为测验过程,也能够直接打包进行测验
- 运转标准基座无法看出作用, 还是会主动封闭发动页
作用