一文詳解如何在uniapp中設(shè)置隱私政策彈窗
前言
在uniapp中Android可以使用uniapp內(nèi)置的隱私政策彈窗,可以在應(yīng)用程序啟動(dòng)前彈出彈窗。但iOS并沒有,因此需要通過頁面的方式進(jìn)行設(shè)置,這種方式會(huì)在應(yīng)用啟動(dòng)后彈窗彈窗。
- Android必須使用uniapp配置的隱私政策彈窗,才能通過應(yīng)用市場的審核。隱私政策上架注意事項(xiàng)
- 本文是uniapp創(chuàng)建的vue3+ts項(xiàng)目
Android設(shè)置隱私政策
官方文檔:配置方式與字段內(nèi)容
第一步:設(shè)置manifest

- 勾選使用隱私政策后,根目錄下會(huì)自動(dòng)生成androidPrivacy.json文件
第二步:修改androidPrivacy.json文件使其滿足要求
- 注意:androidPrivacy.json文件中不能有注釋,下列代碼為了查看方便增加了注釋,一定不能有注釋??!
{
"version": "1",
// 國內(nèi)應(yīng)用市場必須是template模式,可取值template、none
"prompt": "template",
"title": "服務(wù)協(xié)議和隱私政策",
// 《隱私政策》用a標(biāo)簽包裹,點(diǎn)擊可以跳轉(zhuǎn)對應(yīng)的網(wǎng)站。如果隱私政策放在static目錄下,寫為:<a href="static/privacy.html" rel="external nofollow" >《隱私政策》</a>
"message": " 請你務(wù)必審慎閱讀、充分理解“服務(wù)協(xié)議”和“隱私政策”各條款,包括但不限于:為了更好的向你提供服務(wù),我們需要收集你的設(shè)備標(biāo)識(shí)、操作日志等信息用于分析、優(yōu)化應(yīng)用性能。<br/> 你可閱讀<a href="">《服務(wù)協(xié)議》</a>和<a href=" rel="external nofollow" rel="external nofollow" ">《隱私政策》</a>了解詳細(xì)信息。如果你同意,請點(diǎn)擊下面按鈕開始接受我們的服務(wù)。",
"buttonAccept": "同意并接受",
"buttonRefuse": "暫不同意",
// HX 3.4.13之后版本新增,system 使用系統(tǒng)webview 打開隱私協(xié)議鏈接,默認(rèn)使用uni-app內(nèi)置web組件
"hrefLoader":"default" ,
// 點(diǎn)擊不同意時(shí),彈出二次提示框,如不需要,刪除second字段即可
"second": {
"title": "確認(rèn)提示",
"message": " 進(jìn)入應(yīng)用前,你需先同意<a href="">《服務(wù)協(xié)議》</a>和<a href=" rel="external nofollow" rel="external nofollow" ">《隱私政策》</a>,否則將退出應(yīng)用。",
"buttonAccept": "同意并繼續(xù)",
"buttonRefuse": "退出應(yīng)用"
},
// 樣式設(shè)置
"styles": {
"backgroundColor": "#00FF00",
"borderRadius":"5px",
"title": {
"color": "#ff00ff"
},
"buttonAccept": {
"color": "#ffff00"
},
"buttonRefuse": {
"color": "#00ffff"
}
}
}效果

iOS設(shè)置隱私政策
官方文檔:iOS平臺(tái)隱私與政策提示框?qū)崿F(xiàn)注意問題
由于uniapp中,ios沒有配置隱私政策的方法。本文主要采用的是:應(yīng)用啟動(dòng)后,判斷是否同意過,沒有同意顯示隱私政策的頁面,用戶同意后返回,用戶不同意則退出。保證隱私政策頁面的背景與啟動(dòng)圖背景顏色一致,達(dá)到以假亂真效果。隱私政策頁面使用nvue頁面,提高渲染速度。
第一步:新建隱私政策頁面
- 點(diǎn)擊同意,需要設(shè)置緩存,下次進(jìn)入時(shí),不用再彈窗
- 彈窗頁面的背景色盡量與啟動(dòng)頁背景色一致,可以實(shí)現(xiàn)無縫銜接效果
<template>
<view class="dialog">
<view class="title">服務(wù)協(xié)議和隱私政策</view>
<view class="content">
請你務(wù)必審慎閱讀、充分理解“服務(wù)協(xié)議”和“隱私政策”各條款,包括但不限于:為了更好的向你提供服務(wù),我們需要收集你的設(shè)備標(biāo)識(shí)、操作日志等信息用于分析、優(yōu)化應(yīng)用性能。你可閱讀
<text class="link" @click="linkClick(1)">《服務(wù)協(xié)議》</text>和
<text class="link" @click="linkClick(2)">《隱私政策》</text>
了解詳細(xì)信息。如果你同意,請點(diǎn)擊下面按鈕開始接受我們的服務(wù)。
</view>
<view class="btn">
<button @click="disagree">不同意并退出</button>
<button @click="agree">同意</button>
</view>
</view>
</template>
<script setup lang="ts">
// 查看隱私協(xié)議或服務(wù)協(xié)議
const linkClick = (num: number): void => {
switch (num) {
case 1:
// 跳轉(zhuǎn)服務(wù)協(xié)議
break
case 2:
// 跳轉(zhuǎn)隱私政策
break
}
}
// 不同意,退出應(yīng)用
const disagree = (): void => {
// #ifdef APP-PLUS
plus.ios.import("UIApplication").sharedApplication().performSelector("exit")
// #endif
}
// 同意,返回上一頁
const agree = (): void => {
uni.setStorageSync('agree', 1) // 設(shè)置緩存,下次進(jìn)入應(yīng)用不再彈出
uni.navigateBack()
}
</script>
<style lang="scss">
page {
background-color: rgba(0, 0, 0, 0.3); // 設(shè)置與啟動(dòng)頁面相同的背景色,并設(shè)置一定透明度
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>第二步:設(shè)置page.json
- 隱藏導(dǎo)航條
- 禁止返回
- 彈窗進(jìn)入方式改為淡入
"pages": [ //pages數(shù)組中第一項(xiàng)表示應(yīng)用啟動(dòng)頁,參考:https://uniapp.dcloud.io/collocation/pages
{
"path": "pages/index/index", // 首頁
"style": {
"navigationBarTitleText": "uni-app"
}
}
,{
"path" : "pages/iosPrivacy/iosPrivacy", // 這個(gè)頁面就是一個(gè)彈窗
"style" :
{
"navigationBarTitleText": "",
"enablePullDownRefresh": false,
"navigationStyle": "custom", // 隱藏導(dǎo)航條
"disableSwipeBack": true, // 禁用側(cè)滑返回
"app-plus": {
"animationType": "fade-in", // 彈窗進(jìn)入方式
"popGesture": "none", // 關(guān)閉IOS屏幕左邊滑動(dòng)關(guān)閉當(dāng)前頁面的功能
"bounce": "none"
}
}
}
],第三步:設(shè)置manifest文件
- 再app-plus中配置,關(guān)閉自動(dòng)關(guān)閉啟動(dòng)頁,避免先顯示首頁,再進(jìn)入彈窗頁面
"splashscreen" : {
"autoclose" : false, // 自動(dòng)關(guān)閉啟動(dòng)頁
},第四步:app.vue應(yīng)用啟動(dòng)時(shí)判斷
<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() // 關(guān)閉啟動(dòng)頁
// #endif
} else {
// ios單獨(dú)進(jìn)行隱私政策驗(yàn)證
uni.navigateTo({
url: "/pages/iosPrivacy/iosPrivacy",
success() {
// #ifdef APP-PLUS
plus.navigator.closeSplashscreen() // 關(guān)閉啟動(dòng)頁,解決先跳轉(zhuǎn)首頁再顯示隱私政策的問題
// #endif
}
})
}
// #endif
}
}
</script>第五步:制作自定義基座
- 本次步驟為測試步驟,也可以直接打包進(jìn)行測試
- 運(yùn)行標(biāo)準(zhǔn)基座無法看出效果, 還是會(huì)自動(dòng)關(guān)閉啟動(dòng)頁

效果

總結(jié)
到此這篇關(guān)于如何在uniapp中設(shè)置隱私政策彈窗的文章就介紹到這了,更多相關(guān)uniapp設(shè)置隱私政策彈窗內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
layer彈出層自適應(yīng)高度,垂直水平居中的實(shí)現(xiàn)
今天小編就為大家分享一篇layer彈出層自適應(yīng)高度,垂直水平居中的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-09-09
Js類的靜態(tài)方法與實(shí)例方法區(qū)分及jQuery拓展的兩種方法
這篇文章主要介紹了Js類的靜態(tài)方法與實(shí)例方法區(qū)分及jQuery拓展的兩種方法 的相關(guān)資料,對靜態(tài)方法(Static)和實(shí)例方法(非Static)不太理解的朋友可以一起學(xué)習(xí)下2016-06-06
JS實(shí)現(xiàn)搜索關(guān)鍵詞的智能提示功能
最近在百度搜索的時(shí)候,當(dāng)你輸入一個(gè)字或者詞的時(shí)候,他會(huì)給你們彈出一個(gè)下拉框出來,里面是和你相關(guān)的搜索提示,效果非常人性化,基于js怎么實(shí)現(xiàn)搜索關(guān)鍵詞智能提示功能,下面小編通過實(shí)例代碼給大家介紹下,需要的的朋友參考下吧2017-07-07
跟我學(xué)習(xí)javascript的嚴(yán)格模式
跟我學(xué)習(xí)javascript的嚴(yán)格模式,對javascript嚴(yán)格模式進(jìn)行概述,進(jìn)入嚴(yán)格模式的方法,以及如何調(diào)用和相關(guān)語法,感興趣的小伙伴們可以參考一下2015-11-11
bootstrap Table實(shí)現(xiàn)合并相同行
這篇文章主要為大家詳細(xì)介紹了bootstrapTable實(shí)現(xiàn)合并相同行,fastadmin框架同樣使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-07-07
使用php的mail()函數(shù)實(shí)現(xiàn)發(fā)送郵件功能
php中的mail()函數(shù)允許您從腳本中直接發(fā)送電子郵件,下面這篇文章主要給大家介紹了關(guān)于如何使用php的mail()函數(shù)實(shí)現(xiàn)發(fā)送郵件功能的相關(guān)資料,需要的朋友可以參考下2021-06-06
javascript二維數(shù)組和對象的深拷貝與淺拷貝實(shí)例分析
這篇文章主要介紹了javascript二維數(shù)組和對象的深拷貝與淺拷貝,結(jié)合實(shí)例形式分析了JavaScript針對數(shù)組與對象的深拷貝及淺拷貝相關(guān)操作技巧,需要的朋友可以參考下2019-10-10
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft區(qū)別分析
clientX,pageX,offsetX,x,layerX,screenX,offsetLeft區(qū)別分析,需要的朋友可以參考下。2010-03-03
JavaScript利用生成器函數(shù)實(shí)現(xiàn)優(yōu)雅處理異步任務(wù)流
Generators?是?JavaScript?中的一種特殊函數(shù),它們可以暫停執(zhí)行并根據(jù)需要生成多個(gè)值,本文將詳細(xì)介紹?generators?的作用、用法以及與其他語言特性的配合使用,希望對大家有所幫助2023-07-07

