更新记录

0.2.0(2026-10-21) 下载此版本

  • 弹窗视觉重设计,新增 theme 主题属性:内置松岭(默认)、海雾、夜航三套预设,也接受自定义颜色对象;新增 primaryColor、radius、footnote 微调属性。
  • 新增 embed 模式:弹窗在已定位容器内展示,方便预览和演示场景。
  • 适配抖音小程序(tt.getPrivacySetting / tt.onNeedPrivacyAuthorization / tt.openPrivacyContract,基础库 3.19.0+)与支付宝小程序(my.getPrivacySetting / my.onNeedPrivacyAuthorization)官方隐私授权流程。
  • 已拒绝当前版本的用户不再在每次启动时自动弹窗,等到真正触发守卫业务时再询问;新增 shouldPromptOnLaunch() 工具函数。
  • 新增 utils/data-use-presets.js 常见权限用途文案预设与 buildDataUses()。
  • 新增 utils/policy-template.js 隐私政策正文结构化模板,支持第三方 SDK 清单披露(App 上架审核常要求),演示政策页改为由模板生成。
  • Vue2 兼容性经独立工程编译与运行时实测验证;版本号、平台矩阵与文档同步更新。

平台兼容性

uni-app(3.8.6)

Vue2 Vue2插件版本 Vue3 Vue3插件版本 Chrome Safari app-vue app-vue插件版本 app-nvue Android iOS 鸿蒙
√ 0.2.0 √ 0.2.0 × × √ 0.2.0 - - - -
微信小程序 微信小程序插件版本 支付宝小程序 支付宝小程序插件版本 抖音小程序 抖音小程序插件版本 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
√ 0.2.0 √ 0.2.0 3.19.0+ 0.2.0 - - - × - - - - -

赢冬隐私守卫 yingdong-privacy-guard

面向 uni-app 的隐私同意、权限用途说明和业务调用前置守卫组件,适配微信 / 抖音 / 支付宝小程序官方隐私授权。

为什么不是普通隐私弹窗

赢冬隐私守卫把隐私处理拆成可执行的状态机:

  • 政策版本化:同意记录带 policyVersion,政策更新后会重新确认。
  • 业务调用守卫:使用 ensureConsent(reason, action),未同意时不执行隐私相关 action;多个同时触发的动作会排队,在一次确认后按顺序执行。
  • 三端官方流程:微信、抖音、支付宝小程序分别使用 getPrivacySetting、onNeedPrivacyAuthorization、openPrivacyContract 和 agreePrivacyAuthorization 官方按钮;其余端自动降级为本地状态机。
  • 主题可定制:theme 一个属性切换内置主题(松岭 / 海雾 / 夜航),或传入对象自定义每种颜色;primaryColor、radius、footnote 支持微调。
  • 用途可解释:通过 dataUses 按功能说明处理什么信息、为什么需要;utils/data-use-presets.js 提供相册、相机、位置、麦克风等常见权限的用途文案预设。
  • 政策正文模板:utils/policy-template.js 生成结构化的政策段落草稿,支持用途说明和第三方 SDK 清单披露(App 上架审核常要求),接入方核对改写后使用。
  • 不打扰已拒绝用户:明确拒绝当前版本的用户,启动时不再自动弹窗,触发守卫业务时再询问。
  • 接入前自查:auditConfiguration() 检查版本号、政策入口、用途说明和独立存储键是否齐全;只检查实现配置,不作法律判断。
  • 无敏感审计事件:通过 audit 输出流程事件、时间、平台和政策版本,不记录设备标识或用户内容。
  • 无后端依赖:同意记录默认保存在当前设备,不上传任何数据。

组件不等于法律意见,也不能替代接入方在平台后台填写的隐私保护指引、隐私政策文本、App 原生隐私配置和实际数据治理。

快速接入

<template>
  <yingdong-privacy-guard
    ref="privacyGuard"
    app-name="我的应用"
    theme="pine"
    policy-version="2026.10"
    privacy-url="/pages/privacy/privacy"
    :data-uses="dataUses"
    @audit="onAudit"
  />
</template>

<script>
import { buildDataUses } from '@/uni_modules/yd-privacy-guard/utils/data-use-presets.js'

export default {
  data() {
    return {
      dataUses: buildDataUses(['album', 'location'])
    }
  },
  methods: {
    useAlbum() {
      this.$refs.privacyGuard.ensureConsent('选择头像', () => {
        uni.chooseImage({ count: 1 })
      })
    },
    onAudit(event) {
      console.log('[privacy-audit]', event)
    }
  }
}
</script>

主题

<!-- 内置预设 -->
<yingdong-privacy-guard theme="pine" />   <!-- 默认,松岭绿 -->
<yingdong-privacy-guard theme="ocean" />  <!-- 海雾蓝 -->
<yingdong-privacy-guard theme="night" />  <!-- 夜航深色 -->

<!-- 自定义:传对象可覆盖任意字段,只写需要的字段 -->
<yingdong-privacy-guard :theme="{ primary: '#7c5cd6', dialogBg: '#ffffff' }" />

<!-- 或在主题之上只覆盖主题色和圆角 -->
<yingdong-privacy-guard theme="ocean" primary-color="#c2542b" :radius="22" />

主要 API

API / 属性 说明
check() 检查当前政策版本是否已确认,返回 Promise。
ensureConsent(reason, action) 需要隐私确认时展示组件;同意后按入队顺序执行等待中的 action。
agree() / decline() 处理自定义确认按钮。小程序端同意按钮使用官方 agreePrivacyAuthorization。
getConsent() 返回当前本地同意记录。
reset() 清除当前 storageKey 的同意记录。
openPolicy() 小程序端打开平台隐私指引,其他端打开 privacyUrl。
auditConfiguration() 返回实现配置自查清单;小程序端会核对隐私政策入口 API 可用性,不代表合规结论。
getAudit() / clearAudit() 读取或清空当前运行时的无敏感审计事件。
theme 预设名(pine / ocean / night)或自定义颜色对象。
primaryColor / radius / footnote 在主题之上覆盖主题色(十六进制)、圆角和底部说明文字。
embed 在已定位容器内展示弹窗(预览、演示场景),默认全屏 fixed。

工具函数:

工具 说明
utils/data-use-presets.js → buildDataUses(ids) 按预设 id 生成 dataUses 文案,支持逐项覆盖。
utils/policy-template.js → buildPolicySections(options) 生成政策正文结构化草稿。
utils/themes.js → PRIVACY_THEMES / buildThemeVars() 主题预设与 CSS 变量构建。
utils/consent-state.js → shouldPromptOnLaunch(record, version) 判断启动时是否需要自动弹窗。

平台说明

  • Vue 2、Vue 3、H5、微信 / 抖音 / 支付宝小程序和 App Vue 共用组件 API。
  • 微信小程序:需先在小程序管理后台配置《小程序用户隐私保护指引》,只有已声明的信息类型才能调用对应隐私接口;被动授权使用 wx.onNeedPrivacyAuthorization 官方回调,主动提示使用 open-type="agreePrivacyAuthorization" 官方按钮。
  • 抖音小程序:需在抖音开放平台配置《标准化用户隐私保护指引》;隐私 API 需基础库 3.19.0+,低版本自动降级为本地状态机。
  • 支付宝小程序:需在小程序控制台配置隐私政策;使用 my.getPrivacySetting / my.onNeedPrivacyAuthorization 官方流程。
  • Android App:首屏隐私提示需在 HBuilderX 配置原生 androidPrivacy.json 模板。JS 组件运行前,原生弹窗已先执行,组件不能替代它。
  • uni-app App 引擎自身的数据处理也要纳入接入方隐私政策说明。参考 DCloud 文档中的采集说明,不能直接照搬本项目的演示政策。
  • 无官方隐私 API 的端使用本地状态机和 privacyUrl 降级流程。

平台接入步骤见 App 与小程序平台接入说明。

官方参考:

隐私、权限声明

1. 本插件需要申请的系统权限列表:

无

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

无

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议