适配小程序隐私保护指引设置

由于小程序发布了一个公告,那么接下来就是怎么改简单的问题了。毕竟不太想大的改动历史上的代码。尽量简单的适配隐私策略就可以了。

整体思路也是参考现在App普遍的启动就让用户同意隐私策略,不同意不让用,同意了之后才能够继续使用。

公告内容
参考文档

整体思路

整体思路如下:

  1. 在app.js中检查是否已经读过;
  2. 如果没读过,直接跳转到隐私策略页面(隐私策略页面自定义导航且没有返回按钮,为了防止Android的侧边滑动退出,在onUnLoad里边判断一下,如果没同意在跳转到隐私策略一面);
  3. 如果点击确定则退页继续正常流程;
  4. 如果点击拒绝,弹出一个不确定无法继续使用的提示。

如此来做的话仅需要增加一个 privacy 的页面,然后在app.js里边跳进这个页面来适配隐私策略。

效果如下:

详细实现

app.js内容

在app.js里边增加一个检测隐私的函数:

javascript 复制代码
checkPrivacy() {
  if (!wx.canIUse('getPrivacySetting')) {
    return
  }
  wx.getPrivacySetting({
    success: res => {
        console.log("是否需要授权:", res.needAuthorization, "隐私协议的名称为:", res.privacyContractName)
        if (res.needAuthorization) {
          wx.navigateTo({
            url: `/pages/privacy`,
          })
          // wx.reLaunch({
          //   url: '/pages/privacy',
          // })
        } 
    },
    fail: () => { },
    complete: () => { },
  })
}

在App的onLaunch中调用一下

javascript 复制代码
setTimeout(() => {
  this.checkPrivacy()
}, 500);

privacy 页面内容

privacy.js 内容

javascript 复制代码
// pages/privacy.js
Page({
  isAgree: false,
  resolvePrivacyAuthorization: null,
  onLoad(options) {
    console.log('onload ', options)
    wx.onNeedPrivacyAuthorization(resolve => {
      console.log('onNeedPrivacyAuthorization ', resolve)
      this.resolvePrivacyAuthorization = resolve
    })
    wx.requirePrivacyAuthorize()
  },
  onUnload() {
    if (!this.isAgree) {
      console.log('not agree')
      wx.navigateTo({
        url: `/pages/privacy`,
      })
    }
  },
  handleDisagree: function(event) {
    console.log('handleDisagree')

    this.resolvePrivacyAuthorization({ event: 'disagree' })

    wx.exitMiniProgram()
  },
  handleAgree: function(event) {
    console.log('handleAgree')
    this.resolvePrivacyAuthorization({ buttonId: 'agree-btn', event: 'agree' })
    this.isAgree = true
    wx.navigateBack()
  },
  openPrivacyContract() {
    wx.openPrivacyContract({
      success: res => {
        console.log('openPrivacyContract success')
      },
      fail: res => {
        console.error('openPrivacyContract fail', res)
      }
    })
  }
})

privacy.json 内容

json 复制代码
{
  "navigationStyle": "custom",
  "usingComponents": {}
}

privacy.wxml 内容

html 复制代码
<!--pages/privacy.wxml-->
<view class="container">
  <view>用户隐私保护提示</view>
  <view>感谢您使用本游戏,您使用本游戏前应当阅井同意</view>
  <button class="goToPrivacy" bind:tap="openPrivacyContract">《用户隐私保护指引》</button>
  <view>当您点击同意并开始时用产品服务时,即表示你已理解并同息该条款内容,该条款将对您产生法律约束力。如您拒绝,将无法进入游戏。</view>

  <button id="disagree-btn"
    style="margin-top: 30rpx;"
    type="default"
    class="weui-btn"
    bindtap="handleDisagree"
  >不同意并退出</button>
  <button id="agree-btn"
    type="default"
    open-type="agreePrivacyAuthorization"
    class="weui-btn"
    bindagreeprivacyauthorization="handleAgree"
  >同意并继续</button>
</view>

privacy.wxss 内容

css 复制代码
/* pages/privacy.wxss */

.container {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 220rpx 40rpx;
}

.goToPrivacy {
  width: 670rpx !important;
  margin: 20rpx 0;
  font-size: 28rpx;
}
相关推荐
mykj155123 分钟前
消费积分抵扣物业费小程序商城开发
小程序·积分商城抵扣物业费·积分商城小程序开发
云迈科技-软件定制开发18 小时前
2026年湖南长沙软件定制开发公司怎么选?本地企业做APP、小程序、管理系统的合作参考
小程序
小码哥0682 天前
从三甲综合医院到连锁诊所:医院管理小程序的场景化突围逻辑(陪诊系统-陪诊APP-陪诊小程序)
小程序·医院管理系统·陪诊小程序·陪诊系统·陪诊app
2501_916007472 天前
iOS和macOS应用程序性能分析和优化工具使用综合指南
android·macos·ios·小程序·uni-app·iphone·webview
正在走向自律2 天前
用豆包Seed Evolving打造全功能【AI智能记账】小程序,开源可落地
人工智能·小程序·开源·智能记账
小羊Yveesss3 天前
模板建站哪个平台好?模板数量之外还要比较编辑与SEO能力
大数据·人工智能·小程序
2501_916007473 天前
深入理解HTTPS对称与非对称加密机制及Charles抓包实践
网络协议·http·ios·小程序·https·uni-app·iphone
郑州光合科技余经理3 天前
家政O2O平台解析:从0搭建上门预约小程序解决方案
android·java·开发语言·前端·小程序·架构·php
维双云3 天前
小程序商城制作一个需要多少钱?2026报价明细与成本拆解
小程序
郑州光合科技余经理3 天前
家政预约小程序后端源码深度剖析:支付回调实战
java·开发语言·前端·git·小程序·架构·php