uni-app 应用隐私政策怎么写?一份模板+实用技巧送给你

一. 背景

随着《网络安全法》《数据安全法》《个人信息保护法》等法律的实施,网信办、工信部等部门加强了对 APP 侵害用户权益的整治力度,并对不符合规定的 APP 进行了通报。

这些法律法规和监管措施的实施,导致应用商店对 APP 的审核标准提高,要求 APP 在隐私政策中明确说明收集用户信息的目的和用途。因此,在 APP 审核过程中,隐私政策不符合要求的情况经常会出现。

所以本篇文章来统一说明一下,在使用 uni-app 开发的应用上线时,如何做隐私政策声明?帮助大家提交应用审核时,避免因隐私政策不合规而被驳回的场景。

二. 如何书写隐私政策文件?

一般地,一个合规的隐私政策文件应该包括以下内容:

  1. 标题
  2. 版本日期
  3. 主要内容
    • 我们如何收集和使用您的个人信息
    • 我们如何委托处理、共享、转让、公开披露您的个人信息
    • 我们如何保护您的个人信息
    • 您如何管理您的个人信息
    • 我们如何存储您的个人信息
    • 我们如何处理未成年人的个人信息
    • 本隐私政策如何更新
    • 如何联系我们
    • 其他

一般为以上结构,有些都是固定写法,可能公司会有自己的模版,一般经过法务认证。

接下来,我主要说明一下在实际过程中,关于 uni-app 框架开发的 APP 应该声明哪些必有的相关权限!

首先,请在《隐私政策》中必告知用户该应用基于 DCloud uni-app(5+ App/Wap2App) 开发,需要增加如下参考条款:

我们的产品基于 DCloud uni-app(5+ App/Wap2App)开发,应用运行期间需要收集您的设备唯一识别码(IMEI/android ID/DEVICE_ID/IDFA、SIM 卡 IMSI 信息、OAID)以提供统计分析服务,并通过应用启动数据及异常错误日志分析改进性能和用户体验,为用户提供更好的服务。详情内容请访问《DCloud App 引擎隐私政策》。

另外隐私政策中需要补充使用到的三方 SDK,参考:

uni-app 默认集成一些三方 SDK,需要在隐私政策中声明。一般的,声明一个第三方 SDK,包括但不限于需要声明以下内容:

  • SDK 名称
  • SDK 提供方名称
  • 涉及的个人信息
  • 收集目的
  • 完整隐私政策链接

注意:《隐私政策》必须非常清楚、全面地说明(不要用可能收集、了解用户信息这种模糊不清晰的词语)收集用户个人信息的目的、方式和范围。 如果应用使用"通讯录"、"短信"等相关功能,请根据应用业务场景进行描述。

三. 如何配置隐私?

根据工业和信息化部关于开展 APP 侵害用户权益专项整治要求,APP 提交到应用市场必须满足以下条件:

  • 应用启动运行时需弹出隐私政策协议,说明应用采集用户数据 这里将详细介绍如何配置弹出"隐私协议和政策"提示框
  • 应用不能强制要求用户授予权限,即不能"不给权限不让用" 如不希望应用启动时申请"读写手机存储"和"访问设备信息"权限

在 Android 平台下,uni-app 官方提供了以下隐私政策提示配置策略:

首先,打开项目的 manifest.json 文件,切换到"安卓/iOS 启动界面配置",在"启动界面选项" 中勾选 "使用原生隐私政策提示框"

勾选后会在项目中自动添加 androidPrivacy.json 文件,可以双击打开自定义配置以下内容。如果没生成,可以自己新建 androidPrivacy.json

一般为以下内容:

json 复制代码
{
  "version": "1",
  "prompt": "template",
  "title": "服务协议和隐私政策",
  "message": "  请你务必审慎阅读、充分理解"服务协议"和"隐私政策"各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/>  你可阅读<a href=\"\">《服务协议》</a>和<a href=\"\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
  "buttonAccept": "同意并接受",
  "buttonRefuse": "暂不同意",
  "hrefLoader": "system",
  "backToExit": "false",
  "second": {
    "title": "确认提示",
    "message": "  进入应用前,你需先同意<a href=\"\">《服务协议》</a>和<a href=\"\">《隐私政策》</a>,否则将退出应用。",
    "buttonAccept": "同意并继续",
    "buttonRefuse": "退出应用"
  },
  "disagreeMode": {
    "support": false,
    "loadNativePlugins": false,
    "visitorEntry": false,
    "showAlways": false
  },
  "styles": {
    "backgroundColor": "#00FF00",
    "borderRadius": "5px",
    "title": {
      "color": "#ff00ff"
    },
    "buttonAccept": {
      "color": "#ffff00"
    },
    "buttonRefuse": {
      "color": "#00ffff"
    },
    "buttonVisitor": {
      "color": "#00ffff"
    }
  }
}

说明:

  • version 为隐私政策版本号,每次应用升级,需要重新弹出隐私政策提示框,则需要设置新版本,一般跟随应用的版本号更新即可
  • prompt 是否使用原生隐私政策提示框,一般为"template"或"none"
    • template 使用原生提供的隐私政策模板提示框,应用启动时在 splash 界面弹出。
    • none 不处理隐私政策 不提交到应用市场时使用。

更多配置说明参考:androidPrivacy.json 官方配置说明

注意:

  1. androidPrivacy.json 文件内不要添加注释,否则会影响隐私政策提示框的显示!
  2. 此种配置方式从 HBuilderX3.2.1+ 版本开始,如果你是使用的 HBuilderX3.2.0 及以下版本,参考:HBuilderX3.2.0 及以下版本配置方法

四. 实战:如何解决应用市场因隐私政策驳回审核问题?

在我之前的应用提交审核过程中,就曾被华为应用市场拒绝多次,其中不乏有多个隐私政策条款不合规,导致被拒绝,后来经过多次整改,现已通过审核,成功上线。

参考:已解决,华为应用商店已经 4 次驳回我的应用上线

下面说明一个在提交华为应用市场时,因使用了某个第三方 SDK 而未声明隐私政策,导致审核被拒绝的实际案例,看一下我们在实际情况中应该如何处理

审核意见表明:

经检测发现,您的应用中集成了 com.bun.miitmdid(移动智能终端补充设备标识体系统一调用)等 SDK,但未在应用内的隐私政策/在 AppGallery Connect 上提交的隐私政策内容中进行明示,不符合相关法律法规要求。

而且修改建议也给出了,只需要在应用内的隐私政策/在 AppGallery Connect 上提交的隐私政策内逐一罗列明示即可。

所以我们先来了解下:com.bun.miitmdid(移动智能终端补充设备标识体系统一调用) 是个什么东西?

这个隐私政策的修改其实很简单!参考:Android 平台各功能模块隐私合规协议

隐私政策链接:移动智能终端补充设备标识体系统一调用 SDK 隐私政策

所以我们可以在我们自己的隐私政策中加上这一条即可,一般需要声明:SDK 名称、包名信息、使用目的、使用的权限、涉及个人信息、隐私权政策链接/官网等,如下图所示:

通过以上的更改,隐私政策就完善好了。是不是很简单...

五. 小技巧:AI 来协助

我有个小技巧分享给大家,我们可以整理好文案,可以按照 markdown 的格式编排,按照不同的内容进行分区,之后让 AI 帮我们生成 html 格式隐私政策文档即可,供我们部署,简便快捷。

我是使用的 Cursor 来生成的,效果非常棒!

通过以上 Cursor 协助生成的页面如下图所示,比我自己写的也好太多了吧!

之前 AI 还没有那么火的时候,自己来编排还是要费一些时间,现在有了 AI 工具,1 分钟就搞定了,太强了。

六. 总结

通过本文的介绍,相信大家可以更快、更好地理解和处理 uni-app 应用的隐私政策相关问题,提高应用商店的审核通过率。

但需要我们注意的是,隐私政策要求可能会随着法律法规的更新而变化,建议及时关注官方文档的更新,确保应用始终符合最新的合规要求。

文档

Android 平台隐私与政策提示框

Android 平台各功能模块隐私合规协议

Android 平台应用启动时读写手机存储、访问设备信息(如 IMEI)等权限策略及提示信息

用户隐私-华为应用审核指南

相关推荐
GISer_Jing7 分钟前
前端面试通关:Cesium+Three+React优化+TypeScript实战+ECharts性能方案
前端·react.js·面试
落霞的思绪1 小时前
CSS复习
前端·css
咖啡の猫3 小时前
Shell脚本-for循环应用案例
前端·chrome
百万蹄蹄向前冲5 小时前
Trae分析Phaser.js游戏《洋葱头捡星星》
前端·游戏开发·trae
2501_915918416 小时前
iOS 应用上架全流程实践,从开发内测到正式发布的多工具组合方案
android·ios·小程序·https·uni-app·iphone·webview
朝阳5816 小时前
在浏览器端使用 xml2js 遇到的报错及解决方法
前端
GIS之路6 小时前
GeoTools 读取影像元数据
前端
ssshooter7 小时前
VSCode 自带的 TS 版本可能跟项目TS 版本不一样
前端·面试·typescript
Jerry7 小时前
Jetpack Compose 中的状态
前端
dae bal8 小时前
关于RSA和AES加密
前端·vue.js