在uniapp中Android能够运用uniapp内置的隐私方针弹窗,能够在运用程序发动前弹出弹窗。但iOS并没有,因此需求经过页面的方法进行设置,这种方法会在运用发动后弹窗弹窗。

  • Android有必要运用uniapp装备的隐私方针弹窗,才干经过运用市场的审核。隐私方针上架留意事项
  • 本文是uniapp创立的vue3+ts项目

Android设置隐私方针

官方文档:装备方法与字段内容

第一步:设置manifest

如何在uniapp中设置隐私政策弹窗

  • 勾选运用隐私方针后,根目录下会主动生成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"  
    }  
  }  
}

作用

如何在uniapp中设置隐私政策弹窗

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>

第五步:制作自定义基座

  • 本次过程为测验过程,也能够直接打包进行测验
  • 运转标准基座无法看出作用, 还是会主动封闭发动页
  • 如何在uniapp中设置隐私政策弹窗

作用

如何在uniapp中设置隐私政策弹窗