Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
c2a103c5
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3598
Star
108
Fork
921
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
120
列表
看板
标记
里程碑
合并请求
109
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
120
Issue
120
列表
看板
标记
里程碑
合并请求
109
合并请求
109
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
c2a103c5
编写于
5月 27, 2022
作者:
DCloud-yyl
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add docs/tutorial/app-privacy-android.md
上级
5c913927
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
297 addition
and
0 deletion
+297
-0
docs/tutorial/app-privacy-android.md
docs/tutorial/app-privacy-android.md
+297
-0
未找到文件。
docs/tutorial/app-privacy-android.md
0 → 100644
浏览文件 @
c2a103c5
> HBuilderX2.6.3+版本开始支持配置隐私政策提示框
> HBuilderX3.1.10+版本优化template模式策略,解决应用市场检测到弹出隐私政策提示框之前读取mac地址和应用列表的问题
> HBuilderX3.2.1+版本开始支持androidPrivacy.json文件配置隐私政策提示框,真机运行时也可生效
> HBuilderX3.2.5+版本隐私政策提示框内容中的链接支持本地 html 页面地址
> `注意:目前设置custom模式策略,并不能完全避免在弹出隐私提示框之前,读取设备信息(如mac地址、应用列表等)的情况,主要原因是自定义模式隐私提示框并不能阻塞应用的生命周期,使用到一些三方SDK(如X5 Webview内核、UniPush等)在应用启动时会执行初始化操作,三方SDK这是可能会读取设备信息。碰到此问题的开发者请先使用template模式解决,我们后续会提供新的自定义隐私提示框样式解决方案。`
**请使用HBuilderX`3.2.15`+ 版本打包,并使用template配置隐私弹窗否则无法正常上架应用市场**
**uni小程序SDK暂时不支持uniapp自己配置隐私弹窗,需要宿主自行实现隐私弹窗**
### 概述
根据工业和信息化部关于开展APP侵害用户权益专项整治要求,App提交到应用市场必须满足以下条件:
-
应用启动运行时需弹出隐私政策协议,说明应用采集用户数据
这里将详细介绍如何配置弹出“隐私协议和政策”提示框
-
应用不能强制要求用户授予权限,即不能“不给权限不让用”
如不希望应用启动时申请“读写手机存储”和“访问设备信息”权限,请参考:
[
https://ask.dcloud.net.cn/article/36549
](
https://ask.dcloud.net.cn/article/36549
)
为了兼顾隐私政策提示框的易用性和灵活性,解决弹出隐私政策提示框之前可能弹出系统授权框的问题。Android平台提供了以下隐私政策提示配置策略:
-
template
使用原生提供的隐私政策模板提示框,应用启动时在splash界面弹出。
+
优点:在系统授权提示框之前显示,用户点击确认后才会进入应用
+
缺点:只能配置提示文本及链接地址,无法自定义提示框样式
-
none
不处理隐私政策
不提交到应用市场时使用
<a
id=
'collect'
></a>
### DCloud数据采集说明
为了持续优化应用及提供统计报表功能,在运行过程中会采集应用启动时间、异常错误日志等数据,其中包含设备唯一识别码。
> DCloud通过了国家信息安全等级保护三级,证书编号:11010813802-20001,保障相关数据的安全性
> DCloud并非大数据公司,采集的数据是为开发者提供统计服务和产品持续优化,不包含个人隐私信息
**请在《隐私政策》中必告知用户您的应用基于DCloud uni-app(5+ App/Wap2App)开发,增加如下参考条款**
`我们的产品基于DCloud uni-app(5+ App/Wap2App)开发,应用运行期间需要收集您的设备唯一识别码(IMEI/android ID/DEVICE_ID/IDFA、SIM 卡 IMSI 信息、OAID)以提供统计分析服务,并通过应用启动数据及异常错误日志分析改进性能和用户体验,为用户提供更好的服务。详情内容请访问《DCloud用户服务条款》。(DCloud用户服务条款超链至:https://ask.dcloud.net.cn/protocol.html)`
### 配置方式
#### HBuilderX3.2.1及以上版本配置方式
从HBuilderX3.2.1+版本开始新增androidPrivacy.json文件配置隐私政策提示框,支持真机运行查看效果,在androidPrivacy.json中也支持配置部分样式(如背景颜色、标题颜色、按钮颜色等)。
打开项目的manifest.json文件,切换到“App启动界面配置”,在“Android启动界面样式”中勾选“使用原生隐私政策提示框”

**注意!androidPrivacy.json不要添加注释,会影响隐私政策提示框的显示!!!**
勾选后会在项目中自动添加androidPrivacy.json文件,可以双击打开自定义配置以下内容:
```
json
{
"version"
:
"1"
,
"prompt"
:
"template"
,
"title"
:
"服务协议和隐私政策"
,
"message"
:
" 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=
\"\"
>《服务协议》</a>和<a href=
\"\"
>《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。"
,
"buttonAccept"
:
"同意并接受"
,
"buttonRefuse"
:
"暂不同意"
,
//
HX
3.4
.
13
之后版本新增,system
使用系统webview
打开隐私协议链接,默认使用uni-app内置web组件
"hrefLoader"
:“system|default”
"second"
:
{
"title"
:
"确认提示"
,
"message"
:
" 进入应用前,你需先同意<a href=
\"\"
>《服务协议》</a>和<a href=
\"\"
>《隐私政策》</a>,否则将退出应用。"
,
"buttonAccept"
:
"同意并继续"
,
"buttonRefuse"
:
"退出应用"
},
"styles"
:
{
"backgroundColor"
:
"#00FF00"
,
"borderRadius"
:
"5px"
,
"title"
:
{
"color"
:
"#ff00ff"
},
"buttonAccept"
:
{
"color"
:
"#ffff00"
},
"buttonRefuse"
:
{
"color"
:
"#00ffff"
}
}
}
```
-
version
隐私政策版本号,如果应用升级后希望重新弹出隐私政策提示框,则需要设置新版本
-
prompt
是否使用原生隐私政策提示框,值为“template”表示使用,“none”表示不使用
-
title
隐私政策提示框标题文本内容
-
message
隐私政策提示框正文内容,支持富文本richtext类型字符串,支持a/font/br等节点,点击a链接会调用内置页面打开其href属性中链接地址。
**注意:务必配置此提示内容,参考上面示例内容并修改《服务协议》和《隐私政策》链接地址**
-
buttonAccept
模板提示框上接受按钮的文本,默认值为“同意”
-
buttonRefuse
模板提示框上拒绝按钮的文本,默认不显示此按钮
-
second
配置二次确认提示框显示内容,message属性值不为空时弹出二次确认提示框
+
title 二次确认提示框上的标题
+
message 二次确认提示框上的内容,支持富文本richtext类型字符串
+
buttonAccept 二次确认提示框上接受按钮的文本
+
buttonRefuse 二次确认提示框上拒绝按钮的文本
-
styles
配置隐私政策提示框样式
+
backgroundColor 提示框背景颜色,#RRGGBB格式字符串
+
borderRadius 提示框背景圆角半径,单位为px(逻辑像素)
+
title 提示框标题样式,其下仅支持color属性配置文本颜色,值为#RRGGBB格式字符串
+
buttonAccept 接受按钮样式,其下仅支持color属性配置文本颜色,值为#RRGGBB格式字符串
+
buttonRefuse 拒绝按钮样式,其下仅支持color属性配置文本颜色,值为#RRGGBB格式字符串
-
disagreeMode
未同意隐私政策模式
`HBuilder X 3.3.1版本新增支持`
具体配置及说明查看
[
https://uniapp.dcloud.io/app-disagreemode
](
https://uniapp.dcloud.io/app-disagreemode
)
+
support true表示开启disagreeMode;false表示不开启(用户不同意“隐私政策”则退出应用)。默认值为false。
+
loadNativePlugins 表示在disagreeMode模式是否加载uni原生插件,true表示加载;false表示不加载(此时调用uni.requireNativePlugin加载插件扩展Module返回undefined,扩展组件Component也无法使用)。默认值为true。
uni-app项目可以使用uni原生插件能支持更多自定义隐私政策提示框样式,可参考:
[
https://ext.dcloud.net.cn/plugin?id=5581
](
https://ext.dcloud.net.cn/plugin?id=5581
)
#### HBuilderX3.2.0及以下版本配置方法
打开项目的manifest.json文件,切换到“源码视图”项
-
uni-app项目
在 "app-plus" -> "privacy" 节点下添加 prompt节点
-
5+ App项目
在 "plus" -> "privacy" 节点下添加 prompt节点
privacy节点数据格式如下:
```
"privacy": {
"prompt": "template", //可取值template、none
"template": { //prompt取值为template时有效,用于配置模板提示框上显示的内容
}
}
```
-
prompt
字符串类型,必填,隐私政策提示框配置策略,可取值template,none,默认值为none
+
template
使用原生提示框模板,可自定义标题、内容已经按钮上的文本
+
none
不弹出隐私政策提示框
-
template
json格式,可选,模板提示框上显示的内容
#### 模板提示框
配置promt属性值为template时,表示使用原生模板隐私政策提示框,效果如下:

**应用启动前,在Splash页面时显示此提示框,用户点击同意按钮后才会进入应用**
可使用以下配置模板提示框内容
```
"privacy": {
"prompt": "template",
"template": {
"title": "服务协议和隐私政策",
"message": " 请你务必审慎阅读、充分理解“服务协议”和“隐私政策”各条款,包括但不限于:为了更好的向你提供服务,我们需要收集你的设备标识、操作日志等信息用于分析、优化应用性能。<br/> 你可阅读<a href=\"\">《服务协议》</a>和<a href=\"\">《隐私政策》</a>了解详细信息。如果你同意,请点击下面按钮开始接受我们的服务。",
"buttonAccept": "同意",
"buttonRefuse": "暂不同意",
"second": {
"title": "温馨提示",
"message": " 进入应用前,你需先同意<a href=\"\">《服务协议》</a>和<a href=\"\">《隐私政策》</a>,否则将退出应用。",
"buttonAccept": "同意并继续",
"buttonRefuse": "退出应用",
}
}
}
```
-
title
模板提示框上的标题,默认为“服务协议和隐私政策”
-
message
模板提示框上的内容,richtext类型字符串,支持a/font/br等节点,点击a链接会调用内置页面打开其href属性中链接地址。
+
HBuilderX3.2.5以下版本a链接的href属性仅支持网络地址,以http:或https:开头,如“https://www.dcloud.io/privacy.html”
+
HBuilder3.2.5及以上版本a链接的href属性支持本地地址,相对于应用根目录,如“static/privacy.html”
**注意:务必配置此提示内容,参考上面示例内容并修改《服务协议》和《隐私政策》链接地址**
-
buttonAccept
模板提示框上接受按钮的文本,默认值为“同意”,
**注意:接受按钮设置为“我知道了”在部分应用市场上架时会审核不通过。**
-
buttonRefuse
模板提示框上拒绝按钮的文本,默认不显示此按钮
-
second
HBuilderX3.1.12+版本新增支持隐私提示框二次确认提示,用于配置二次确认提示框显示内容,message属性值不为空时弹出二次确认提示框
+
title 二次确认提示框上的标题
+
message 二次确认提示框上的内容,支持richtext类型字符串
+
buttonAccept 二次确认提示框上接受按钮的文本
+
buttonRefuse 二次确认提示框上拒绝按钮的文本
**配置后提交云端打包后生效**
提供5+ API设置/获取状态:
-
获取是否同意隐私政策
参考规范:
[
plus.runtime.isAgreePrivacy
](
https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.isAgreePrivacy
)
应用启动时调用此API查下状态,如果用户未同意则弹出自定义隐私政策提示框。
```
if(!plus.runtime.isAgreePrivacy()){
//弹出自定义隐私政策提示框
}
```
-
设置为同意隐私政策
参考规范:
[
plus.runtime.agreePrivacy
](
https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.agreePrivacy
)
在自定义隐私政策提示界面用,用户点击“同意”按钮时需调用此API设置状态
-
设置为不同意隐私政策
参考规范:
[
plus.runtime.disagreePrivacy
](
https://www.html5plus.org/doc/zh_cn/runtime.html#plus.runtime.disagreePrivacy
)
在自定义隐私政策提示界面用,用户点击“不同意”按钮时需调用此API设置状态
**注意:用户同意隐私政策前不要调用可能弹出系统授权框的API,如定位(plus.geolocation)、录音(plus.audio.getRecorder)等**
#### 无提示框
配置prompt属性值为none时,表示不显示隐私政策提示框。
如果不提交到应用市场,可以使用此模式。
### 离线打包配置方式
**HBuilderX3.2.1+版本新增androidPrivacy.json配置隐私政策提示框,优先级高于原生环境配置,新版本没有必要再在原生工程中配置**
在原生工程中应用的AndroidManifest.xml中配置隐私提供框模式,在application节点下添加meta-data节点数据,如下:
```
xml
<application>
<meta-data
android:name=
"DCLOUD_PRIVACY_PROMPT"
android:value=
"template"
/>
</application>
```
android:value可取值为"template"、"none"。
** 配置使用"template"模板提示框时,需要按以下方法配置提示框内容**
`在原生工程的res/values目录下的strings.xml配置默认语言内容(为了兼容用户设置不同语言的清空,此文件必须配置)。中文还需要创建res/values-zh目录下的strings.xml文件并配置中文内容。`
### 模板提示框
请在原生工程的strings.xml中添加以下字段配置模板提示框内容。
```
xml
<resources>
<string
name=
"dcloud_privacy_prompt_title"
>
弹窗标题
</string>
<string
name=
"dcloud_privacy_prompt_accept_button_text"
>
接收按钮文字配置字段(不存在该字段,即使用默认内容“同意”)
</string>
<string
name=
"dcloud_privacy_prompt_refuse_button_text"
>
拒绝按钮文字配置字段(没有该字段或该字段内容为空,拒绝按钮不显示)
</string>
<string
name=
"dcloud_privacy_prompt_message"
><Data>
<![CDATA[弹窗内容,如果内容中有富文本,请将内容放入cdata下,如当前配置]]>
</Data></string>
</resources>
```
### 二次确认提示框
HBuilderX3.1.12+版本新增支持模板隐私提示框二次确认功能,点击隐私模板提示框时用户选择“拒绝”按钮并且二次确认提示框内容dcloud_second_privacy_prompt_message配置不为空时会弹出二次确认提示框。
请在原生工程的strings.xml中添加以下字段配置二次确认提示框内容。
```
xml
<string
name=
"dcloud_second_privacy_prompt_title"
>
二级弹窗标题
</string>
<string
name=
"dcloud_second_privacy_prompt_accept_button_text"
>
接收按钮文字配置字段(不存在该字段,即使用默认内容“确定”)
</string>
<string
name=
"dcloud_second_privacy_prompt_message"
>
<![CDATA[协议内容]]>
</string>
<string
name=
"dcloud_second_privacy_prompt_refuse_button_text"
>
拒绝按钮文字配置字段(没有该字段或该字段内容为空,拒绝按钮不显示)
</string>
```
### 国际化
> HBuilderX3.2.12+版本androidPrivacy.json支持国际化
-
uni-app项目
可参考page.json文件国际化方式处理,详见:
[
uni-app项目 pages.json 国际化
](
https://uniapp.dcloud.io/tutorial/i18n.html#nvue
)
-
5+ App项目
不支持uni-app形式的国际化配置,可以对androidPrivacy.json文件中需要国际化处理的字段添加Locales,示例如下:
```
{
"prompt": "template",
"buttonAccept" : "默认接受按钮文本"
}
```
添加buttonAcceptLocales处理buttonAccept的国际化文本,如下
```
{
"prompt": "template",
"buttonAccept" : "默认接受按钮文本",
"buttonAcceptLocales": {
"en": "英文接受按钮文本",
"zh-Hans":"中文简体接受按钮文本",
"zh-Hant": "中文繁体接受按钮文本"
}
}
```
### 隐私协议内容需要注意的问题
需要在《隐私政策》中必告知用户您的应用基于DCloud uni-app(5+ App/Wap2App)开发,添加如下参考条款:
`我们的产品基于DCloud uni-app(5+ App/Wap2App)开发,应用运行期间需要收集您的设备唯一识别码(IMEI/android ID/DEVICE_ID/IDFA、SIM 卡 IMSI 信息、OAID)以提供统计分析服务,并通过应用启动数据及异常错误日志分析改进性能和用户体验,为用户提供更好的服务。`
另外隐私政策中需要补充使用到的三方SDK,参考:
#### uni-app默认集成三方SDK
请参考文档
[
Android平台各功能模块隐私合规条款
](
https://ask.dcloud.net.cn/article/39484
)
#### uni原生插件
如果应用使用了uni原生插件,需要注意一下几点:
+
使用插件时请查看插件详情页面中的
`隐私、权限声明`
。(插件使用什么sdk?获取了什么用户信息?都应由插件作者提供并填写在
`隐私、权限声明`
中)
+
将插件中用到的三方SDK信息添加到用户隐私协议中。例如集成了
`百度定位`
。就需要在隐私协议中说明集成了百度定位SDK。获取了xxx用户信息!用于xxx.
+
如果发现插件有获取用户信息而插件详情页并没有提供
`隐私、权限声明`
,请与插件开发者或与我们反馈共同督促进行补充。
#### 其它
《隐私政策》必须非常清楚、全面地说明(不要用可能收集、了解用户信息这种模糊不清晰的词语)收集用户个人信息的目的、方式和范围。
如果应用使用“通讯录”、“短信”等相关功能,请根据应用业务场景进行描述。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录