
Android平台隐私与政策提示框配置方法
此文档将不再维护,请参考新文档:https://uniapp.dcloud.io/tutorial/app-privacy-android
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模式解决,我们后续会提供新的自定义隐私提示框样式解决方案。
uni小程序SDK暂时不支持uniapp自己配置隐私弹窗,需要宿主自行实现隐私弹窗
请使用HBuilderX3.2.15
+ 版本打包,并使用template配置隐私弹窗否则无法正常上架应用市场
概述
根据工业和信息化部关于开展APP侵害用户权益专项整治要求,App提交到应用市场必须满足以下条件:
- 应用启动运行时需弹出隐私政策协议,说明应用采集用户数据
这里将详细介绍如何配置弹出“隐私协议和政策”提示框 - 应用不能强制要求用户授予权限,即不能“不给权限不让用”
如不希望应用启动时申请“读写手机存储”和“访问设备信息”权限,请参考: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 App引擎隐私政策》。(DCloud App引擎隐私政策超链至:https://dcloud.io/license/appprivacy.html)
配置方式
HBuilderX3.2.1及以上版本配置方式
从HBuilderX3.2.1+版本开始新增androidPrivacy.json文件配置隐私政策提示框,支持真机运行查看效果,在androidPrivacy.json中也支持配置部分样式(如背景颜色、标题颜色、按钮颜色等)。
打开项目的manifest.json文件,切换到“App启动界面配置”,在“Android启动界面样式”中勾选“使用原生隐私政策提示框”

注意!androidPrivacy.json不要添加注释,会影响隐私政策提示框的显示!!!
勾选后会在项目中自动添加androidPrivacy.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
模板提示框上拒绝按钮的文本,默认不显示此按钮 - hrefLoader
HX 3.4.13之后版本新增,system 使用系统webview 打开隐私协议链接,默认 default 使用uni-app内置web组件 - 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- 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
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
- 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
应用启动时调用此API查下状态,如果用户未同意则弹出自定义隐私政策提示框。if(!plus.runtime.isAgreePrivacy()){ //弹出自定义隐私政策提示框 }
- 设置为同意隐私政策
参考规范:plus.runtime.agreePrivacy
在自定义隐私政策提示界面用,用户点击“同意”按钮时需调用此API设置状态 - 设置为不同意隐私政策
参考规范:plus.runtime.disagreePrivacy
在自定义隐私政策提示界面用,用户点击“不同意”按钮时需调用此API设置状态
注意:用户同意隐私政策前不要调用可能弹出系统授权框的API,如定位(plus.geolocation)、录音(plus.audio.getRecorder)等
无提示框
配置prompt属性值为none时,表示不显示隐私政策提示框。
如果不提交到应用市场,可以使用此模式。
离线打包配置方式
HBuilderX3.2.1+版本新增androidPrivacy.json配置隐私政策提示框,优先级高于原生环境配置,新版本没有必要再在原生工程中配置
在原生工程中应用的AndroidManifest.xml中配置隐私提供框模式,在application节点下添加meta-data节点数据,如下:
<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中添加以下字段配置模板提示框内容。
<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中添加以下字段配置二次确认提示框内容。
<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 国际化 - 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平台各功能模块隐私合规条款
uni原生插件
如果应用使用了uni原生插件,需要注意一下几点:
- 使用插件时请查看插件详情页面中的
隐私、权限声明
。(插件使用什么sdk?获取了什么用户信息?都应由插件作者提供并填写在隐私、权限声明
中) - 将插件中用到的三方SDK信息添加到用户隐私协议中。例如集成了
百度定位
。就需要在隐私协议中说明集成了百度定位SDK。获取了xxx用户信息!用于xxx. - 如果发现插件有获取用户信息而插件详情页并没有提供
隐私、权限声明
,请与插件开发者或与我们反馈共同督促进行补充。
其它
《隐私政策》必须非常清楚、全面地说明(不要用可能收集、了解用户信息这种模糊不清晰的词语)收集用户个人信息的目的、方式和范围。
如果应用使用“通讯录”、“短信”等相关功能,请根据应用业务场景进行描述。
其它相关问题
Android平台配置权限参考:https://ask.dcloud.net.cn/article/36982
iOS平台隐私与政策提示框实现参考:https://ask.dcloud.net.cn/article/36955
附件
可参考附件隐私权政策协议模板
注意:请修改模板中的公司名称及联系邮件地址
此文档将不再维护,请参考新文档:https://uniapp.dcloud.io/tutorial/app-privacy-android
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模式解决,我们后续会提供新的自定义隐私提示框样式解决方案。
uni小程序SDK暂时不支持uniapp自己配置隐私弹窗,需要宿主自行实现隐私弹窗
请使用HBuilderX3.2.15
+ 版本打包,并使用template配置隐私弹窗否则无法正常上架应用市场
概述
根据工业和信息化部关于开展APP侵害用户权益专项整治要求,App提交到应用市场必须满足以下条件:
- 应用启动运行时需弹出隐私政策协议,说明应用采集用户数据
这里将详细介绍如何配置弹出“隐私协议和政策”提示框 - 应用不能强制要求用户授予权限,即不能“不给权限不让用”
如不希望应用启动时申请“读写手机存储”和“访问设备信息”权限,请参考: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 App引擎隐私政策》。(DCloud App引擎隐私政策超链至:https://dcloud.io/license/appprivacy.html)
配置方式
HBuilderX3.2.1及以上版本配置方式
从HBuilderX3.2.1+版本开始新增androidPrivacy.json文件配置隐私政策提示框,支持真机运行查看效果,在androidPrivacy.json中也支持配置部分样式(如背景颜色、标题颜色、按钮颜色等)。
打开项目的manifest.json文件,切换到“App启动界面配置”,在“Android启动界面样式”中勾选“使用原生隐私政策提示框”
注意!androidPrivacy.json不要添加注释,会影响隐私政策提示框的显示!!!
勾选后会在项目中自动添加androidPrivacy.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
模板提示框上拒绝按钮的文本,默认不显示此按钮 - hrefLoader
HX 3.4.13之后版本新增,system 使用系统webview 打开隐私协议链接,默认 default 使用uni-app内置web组件 - 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- 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
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
- 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
应用启动时调用此API查下状态,如果用户未同意则弹出自定义隐私政策提示框。if(!plus.runtime.isAgreePrivacy()){ //弹出自定义隐私政策提示框 }
- 设置为同意隐私政策
参考规范:plus.runtime.agreePrivacy
在自定义隐私政策提示界面用,用户点击“同意”按钮时需调用此API设置状态 - 设置为不同意隐私政策
参考规范:plus.runtime.disagreePrivacy
在自定义隐私政策提示界面用,用户点击“不同意”按钮时需调用此API设置状态
注意:用户同意隐私政策前不要调用可能弹出系统授权框的API,如定位(plus.geolocation)、录音(plus.audio.getRecorder)等
无提示框
配置prompt属性值为none时,表示不显示隐私政策提示框。
如果不提交到应用市场,可以使用此模式。
离线打包配置方式
HBuilderX3.2.1+版本新增androidPrivacy.json配置隐私政策提示框,优先级高于原生环境配置,新版本没有必要再在原生工程中配置
在原生工程中应用的AndroidManifest.xml中配置隐私提供框模式,在application节点下添加meta-data节点数据,如下:
<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中添加以下字段配置模板提示框内容。
<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中添加以下字段配置二次确认提示框内容。
<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 国际化 - 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平台各功能模块隐私合规条款
uni原生插件
如果应用使用了uni原生插件,需要注意一下几点:
- 使用插件时请查看插件详情页面中的
隐私、权限声明
。(插件使用什么sdk?获取了什么用户信息?都应由插件作者提供并填写在隐私、权限声明
中) - 将插件中用到的三方SDK信息添加到用户隐私协议中。例如集成了
百度定位
。就需要在隐私协议中说明集成了百度定位SDK。获取了xxx用户信息!用于xxx. - 如果发现插件有获取用户信息而插件详情页并没有提供
隐私、权限声明
,请与插件开发者或与我们反馈共同督促进行补充。
其它
《隐私政策》必须非常清楚、全面地说明(不要用可能收集、了解用户信息这种模糊不清晰的词语)收集用户个人信息的目的、方式和范围。
如果应用使用“通讯录”、“短信”等相关功能,请根据应用业务场景进行描述。
其它相关问题
Android平台配置权限参考:https://ask.dcloud.net.cn/article/36982
iOS平台隐私与政策提示框实现参考:https://ask.dcloud.net.cn/article/36955
附件
可参考附件隐私权政策协议模板
注意:请修改模板中的公司名称及联系邮件地址

分享一个跨平台小程序脚手架,涵盖UI库和主题、请求、代码规范等插拔式应用框架
源码地址:https://github.com/PhotoArtLife/uniapp-scaffold
备注:基于此脚手架曾上线过多款厂里商业性产品,欢迎issue!
简介:
uniapp-scaffold 是一款跨平台小程序脚手架,配备一定基础UI库和规范的插拔式应用框架。
特点:
全: 一套code,实时打包输出各端小程序 + h5 + app
简: Vue写法,内置基础组件库和Vuex、Services、Utils等丰富能力
调研:
基于跨平台小程序框架+ kpui(一个不断完善的组件库)的mini app(小程序 + h5 + app)
当前混合版仅上线百度、头条、支付宝、微信等相关平台,更多动态请参观uni-app官网或联系脚手架作者
Guides | 参考资料:
uni-app文档
微信官方小程序文档
微信小程序API
头条小程序文档
百度小程序文档
支付宝小程序文档
airbnb javascript standard
Ant Design introduce
JD Front-End Coding Guidelines
React系多端统一开发解决方案Taro
Dev | 开发姿势:
- 工具,先下载各平台开发工具(IDE)https://uniapp.dcloud.io/quickstart
- 在Hbuilder中导入当前项目(uni-app类型),修改或更新当前配置,manifest.json和pages.json
- 配置插件,菜单栏点击插件管理可以安装当前项目所需要的插件和loader,(less、babel、es6等),npm insatll (步骤3不分先后)
- 菜单栏点击运行到要开发的小程序平台,不习惯当前IDE的可以切换到VS Code,同步开发,实时编译
- 进入各家开发者后台,提审,发布
- 更多补充中
注意事项/坑:
使用Vue.js注意事项 https://uniapp.dcloud.io/use
根据不同平台小程序做条件编译(非常重要)https://uniapp.dcloud.io/platform
高级开发技巧 https://uniapp.dcloud.io/snippet
性能优化建议 https://uniapp.dcloud.io/performance
源码地址:https://github.com/PhotoArtLife/uniapp-scaffold
备注:基于此脚手架曾上线过多款厂里商业性产品,欢迎issue!
简介:
uniapp-scaffold 是一款跨平台小程序脚手架,配备一定基础UI库和规范的插拔式应用框架。
特点:
全: 一套code,实时打包输出各端小程序 + h5 + app
简: Vue写法,内置基础组件库和Vuex、Services、Utils等丰富能力
调研:
基于跨平台小程序框架+ kpui(一个不断完善的组件库)的mini app(小程序 + h5 + app)
当前混合版仅上线百度、头条、支付宝、微信等相关平台,更多动态请参观uni-app官网或联系脚手架作者
Guides | 参考资料:
uni-app文档
微信官方小程序文档
微信小程序API
头条小程序文档
百度小程序文档
支付宝小程序文档
airbnb javascript standard
Ant Design introduce
JD Front-End Coding Guidelines
React系多端统一开发解决方案Taro
Dev | 开发姿势:
- 工具,先下载各平台开发工具(IDE)https://uniapp.dcloud.io/quickstart
- 在Hbuilder中导入当前项目(uni-app类型),修改或更新当前配置,manifest.json和pages.json
- 配置插件,菜单栏点击插件管理可以安装当前项目所需要的插件和loader,(less、babel、es6等),npm insatll (步骤3不分先后)
- 菜单栏点击运行到要开发的小程序平台,不习惯当前IDE的可以切换到VS Code,同步开发,实时编译
- 进入各家开发者后台,提审,发布
- 更多补充中
注意事项/坑:
使用Vue.js注意事项 https://uniapp.dcloud.io/use
根据不同平台小程序做条件编译(非常重要)https://uniapp.dcloud.io/platform
高级开发技巧 https://uniapp.dcloud.io/snippet
性能优化建议 https://uniapp.dcloud.io/performance

开发者中心Unipush推送页面优化介绍
1. 更新简述
(1)页面改版,模块区分出公共模块、安卓配置、ios配置
(2)通知消息-支持ios推送
(3)通知消息-增加通知渠道模板
(4)通知消息-后续动作改造
(5)通知消息-通知栏图标改造
(6)透传消息-新增测试预览
(7)特定用户支持手动输入
(8)apn模块,payload支持自定义key、value
(9)数据统计中,推送记录和推送数据页面合并
(10)用户分组从头部移到应用内
2. 页面改版
(1)页面改版,模块区分出公共模块、安卓配置、ios配置
(2)新旧版本按钮位置移动
(3)数据统计,推送记录和推送统计合并,点击红框“推送数据”弹窗新页面
(4)用户分组位置从头部转移到应用内;且支持系统版本标签选择
3. 新增点
(1)通知消息-支持ios推送,并增加手机预览样式
(2)通知消息-增加拆分记录:同一条消息推送,会在推送记录中,分别以Android和ios两个目标平台区分为两条记录
(3)通知消息-后续动作改造:原高级设置中的透传消息移动到后续动作的附加消息
(4)通知消息-增加通知渠道模板:整合铃声、震动、浮动、唤醒屏幕这些提醒方式,通过渠道的方式来使用;
作用如下:
1、有些厂商要求一定要带Channel ID;
2、设置好提醒方式,下次可直接使用,方便管理
配置管理-增加渠道配置页面,用于新增、查看通知渠道模板
1、模板不支持修改和删除
2、每个应用默认有两个模板:“Default”和“Push”;
(1)Default的渠道优先级为“默认(PRIORITY_DEFAULT)”;
(2)Push的渠道优先级为“PRIORITY_HIGH”;
(5)通知消息-增加通知栏图标:
1、默认图标 :通知栏展示个推SDK已设置好的push.png;厂商不支持显示push.png,显示的是桌面图标;图标无预览样式
2、APP本地图标:个推SDK支持设置多个push.png,填写指定的push.png;厂商不支持显示push.png,显示的是桌面图标;图标无预览样式
3、上传图标:通知栏展示上传的本地图标;该选项不支持走厂商通道
4、指定图标路径:通知栏展示指定路径的图标,图片可以为http或https开头的网络资源;该选项不支持走厂商通道;图标无预览样式
(6)透传消息-增加测试预览
(7)APNs模块-payload改造:用于补充下发需携带的其他参数
Payload和消息内容一致:key=payload,value=消息内容
Payload内容自定义:key=payload,value自定义
自定义:key和value均自定义
(8)特定用户,支持手动输入
4. 删除点
展示条件、联网方式近半年使用率极低;厂商不支持清除通知,功能无效;故删除该3点功能
1. 更新简述
(1)页面改版,模块区分出公共模块、安卓配置、ios配置
(2)通知消息-支持ios推送
(3)通知消息-增加通知渠道模板
(4)通知消息-后续动作改造
(5)通知消息-通知栏图标改造
(6)透传消息-新增测试预览
(7)特定用户支持手动输入
(8)apn模块,payload支持自定义key、value
(9)数据统计中,推送记录和推送数据页面合并
(10)用户分组从头部移到应用内
2. 页面改版
(1)页面改版,模块区分出公共模块、安卓配置、ios配置
(2)新旧版本按钮位置移动
(3)数据统计,推送记录和推送统计合并,点击红框“推送数据”弹窗新页面
(4)用户分组位置从头部转移到应用内;且支持系统版本标签选择
3. 新增点
(1)通知消息-支持ios推送,并增加手机预览样式
(2)通知消息-增加拆分记录:同一条消息推送,会在推送记录中,分别以Android和ios两个目标平台区分为两条记录
(3)通知消息-后续动作改造:原高级设置中的透传消息移动到后续动作的附加消息
(4)通知消息-增加通知渠道模板:整合铃声、震动、浮动、唤醒屏幕这些提醒方式,通过渠道的方式来使用;
作用如下:
1、有些厂商要求一定要带Channel ID;
2、设置好提醒方式,下次可直接使用,方便管理
配置管理-增加渠道配置页面,用于新增、查看通知渠道模板
1、模板不支持修改和删除
2、每个应用默认有两个模板:“Default”和“Push”;
(1)Default的渠道优先级为“默认(PRIORITY_DEFAULT)”;
(2)Push的渠道优先级为“PRIORITY_HIGH”;
(5)通知消息-增加通知栏图标:
1、默认图标 :通知栏展示个推SDK已设置好的push.png;厂商不支持显示push.png,显示的是桌面图标;图标无预览样式
2、APP本地图标:个推SDK支持设置多个push.png,填写指定的push.png;厂商不支持显示push.png,显示的是桌面图标;图标无预览样式
3、上传图标:通知栏展示上传的本地图标;该选项不支持走厂商通道
4、指定图标路径:通知栏展示指定路径的图标,图片可以为http或https开头的网络资源;该选项不支持走厂商通道;图标无预览样式
(6)透传消息-增加测试预览
(7)APNs模块-payload改造:用于补充下发需携带的其他参数
Payload和消息内容一致:key=payload,value=消息内容
Payload内容自定义:key=payload,value自定义
自定义:key和value均自定义
(8)特定用户,支持手动输入
4. 删除点
展示条件、联网方式近半年使用率极低;厂商不支持清除通知,功能无效;故删除该3点功能

承接各行业商城及衍生项目, 成熟商城产品, 支持B2C, B2B2C, 社交电商
官方网站
www.ccmao.net
产品体验
联系微信(qinghuiyang-lcq)
1 产品介绍
创创猫电商系统是基于JavaEE技术的企业级电子商务平台系统,以其安全稳定、强大易用、高效专业等优势赢得了用户的广泛好评。创创猫为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,突显电子商务商业价值。
2 产品优势
支持多种电商模式
B2C: 商家自营
B2B2C : 平台商家入驻
社交电商: 会员快速裂变, 分销分润
绚丽风格,极致视觉体验
采用电子商务流行设计元素,给用户以极致的视觉体验,基于uniapp技术开发,提供丰富的组件,让页面设计更加简单。
100%源代码支持
严格遵循Java标准开发规范,全面源代码及注释支持。
优异性能,轻松实现高负载应用
采用多级缓存、全文检索、云存储等技术,使得系统的响应速度和负载能力大大提升。
多重安全防护机制
XSS防御、CSRF防御、SQL安全防御、RSA传输加密、暴力破解防护...针对各类攻击采用多重安全防护措施,有效保障用户的系统及数据安全。
强大功能,丰富的第三方应用扩展
高扩展性插件设计,多种第三方应用集成。微信、支付宝、快捷登录、快递100、站长统计、阿里云存储、FTP存储...
3 技术架构
开发语言: Java
数 据 库 : MySQL
后端框架: Spring、SpringMVC、JPA
前端框架: Uni-app、vue、iview
全文检索: Lucene
依赖管理: Maven
官方网站
www.ccmao.net
产品体验
联系微信(qinghuiyang-lcq)
1 产品介绍
创创猫电商系统是基于JavaEE技术的企业级电子商务平台系统,以其安全稳定、强大易用、高效专业等优势赢得了用户的广泛好评。创创猫为大、中、小企业提供一个安全、高效、强大的电子商务解决方案,协助企业快速构建、部署和管理其电子商务平台,拓展企业销售渠道,突显电子商务商业价值。
2 产品优势
支持多种电商模式
B2C: 商家自营
B2B2C : 平台商家入驻
社交电商: 会员快速裂变, 分销分润
绚丽风格,极致视觉体验
采用电子商务流行设计元素,给用户以极致的视觉体验,基于uniapp技术开发,提供丰富的组件,让页面设计更加简单。
100%源代码支持
严格遵循Java标准开发规范,全面源代码及注释支持。
优异性能,轻松实现高负载应用
采用多级缓存、全文检索、云存储等技术,使得系统的响应速度和负载能力大大提升。
多重安全防护机制
XSS防御、CSRF防御、SQL安全防御、RSA传输加密、暴力破解防护...针对各类攻击采用多重安全防护措施,有效保障用户的系统及数据安全。
强大功能,丰富的第三方应用扩展
高扩展性插件设计,多种第三方应用集成。微信、支付宝、快捷登录、快递100、站长统计、阿里云存储、FTP存储...
3 技术架构
开发语言: Java
数 据 库 : MySQL
后端框架: Spring、SpringMVC、JPA
前端框架: Uni-app、vue、iview
全文检索: Lucene
依赖管理: Maven
收起阅读 »
分享mqtt.js插件要用到的package.json
大佬的连接在这里:
https://ext.dcloud.net.cn/plugin?id=854#
大佬的连接在这里:
https://ext.dcloud.net.cn/plugin?id=854#

动态修改TitleNView RedDot,支持App 和 H5
app部分来自于 https://github.com/dcloudio/hello-uniapp
export function setTitleNViewStyle(index, show,text) {
let pages = getCurrentPages();
let page = pages[pages.length - 1];
// #ifdef APP-PLUS
let currentWebview = page.$getAppWebview();
if(show){
if(index === 0){
currentWebview.showTitleNViewButtonRedDot({index:index,text:text})
}else{
currentWebview.setTitleNViewButtonBadge({index:index,text:text})
}
}else{
if(index === 0){
currentWebview.hideTitleNViewButtonRedDot({index:index})
}else{
currentWebview.removeTitleNViewButtonBadge({index:index})
}
}
// #endif
// #ifdef H5
if(show){
if(index === 0){
document.querySelectorAll('.uni-page-head-hd .uni-page-head-btn')[1].classList.add('uni-page-head-btn-red-dot');
} else {
document.querySelector('.uni-page-head-ft .uni-page-head-btn').classList.add('uni-page-head-btn-red-dot');
}
} else {
if(index === 0){
document.querySelector('.uni-page-head-btn-red-dot').classList.remove('uni-page-head-btn-red-dot');
} else {
document.querySelector('.uni-page-head-ft .uni-page-head-btn-red-dot').classList.remove('uni-page-head-btn-red-dot');
}
}
// #endif
}
app部分来自于 https://github.com/dcloudio/hello-uniapp
export function setTitleNViewStyle(index, show,text) {
let pages = getCurrentPages();
let page = pages[pages.length - 1];
// #ifdef APP-PLUS
let currentWebview = page.$getAppWebview();
if(show){
if(index === 0){
currentWebview.showTitleNViewButtonRedDot({index:index,text:text})
}else{
currentWebview.setTitleNViewButtonBadge({index:index,text:text})
}
}else{
if(index === 0){
currentWebview.hideTitleNViewButtonRedDot({index:index})
}else{
currentWebview.removeTitleNViewButtonBadge({index:index})
}
}
// #endif
// #ifdef H5
if(show){
if(index === 0){
document.querySelectorAll('.uni-page-head-hd .uni-page-head-btn')[1].classList.add('uni-page-head-btn-red-dot');
} else {
document.querySelector('.uni-page-head-ft .uni-page-head-btn').classList.add('uni-page-head-btn-red-dot');
}
} else {
if(index === 0){
document.querySelector('.uni-page-head-btn-red-dot').classList.remove('uni-page-head-btn-red-dot');
} else {
document.querySelector('.uni-page-head-ft .uni-page-head-btn-red-dot').classList.remove('uni-page-head-btn-red-dot');
}
}
// #endif
}
收起阅读 »

xinguan2020 - 新冠抗疫开源项目大汇总。出入管理、访客登记、社区管理、健康统计、疫情查询
疫情紧急,各地急需it系统,为管控疫情提供强力支撑。
DCloud牵头,组织开发者开发了大量抗疫开源项目:出入人员登记、学生健康情况统计、员工健康统计、消毒管理登记、物资管理系统...
- 所有项目全部基于木兰宽松许可证,可自由免费的使用项目源码,包括前端和后端。
- 所有项目前端全部基于uni-app,可以随意发布为app、h5网页和各种小程序版,跨全端使用
- 所有项目后端全部基于uniCloud(阿里云定制版),云服务全免费、无需请款流程,无需考虑双机热备、瞬时大并发、以及安全DDoS防护。直接用就好了。
如何使用这些开源项目?
- 如果你是需求单位,找技术人员部署这些项目即可,有必要的话可以修改源码定制。每个项目的readme里有运行和部署的说明文档。
- 如果你是外包开发商,可以把这些系统快速交付给你的客户。不需要为DCloud付费。
- 如果你想运营SaaS托管平台,让各个单位可以免部署直接开户,也没问题,欢迎基于这些开源项目改造,自建多账户托管的平台。不需要为DCloud付费。
一句话,代码、服务器,全白用,只为抗疫做贡献!
开源项目总地址:https://gitee.com/dcloud/xinguan2020/
案例汇总地址:http://xinguan2020.dcloud.net.cn/
交流QQ群:797192690
疫情紧急,各地急需it系统,为管控疫情提供强力支撑。
DCloud牵头,组织开发者开发了大量抗疫开源项目:出入人员登记、学生健康情况统计、员工健康统计、消毒管理登记、物资管理系统...
- 所有项目全部基于木兰宽松许可证,可自由免费的使用项目源码,包括前端和后端。
- 所有项目前端全部基于uni-app,可以随意发布为app、h5网页和各种小程序版,跨全端使用
- 所有项目后端全部基于uniCloud(阿里云定制版),云服务全免费、无需请款流程,无需考虑双机热备、瞬时大并发、以及安全DDoS防护。直接用就好了。
如何使用这些开源项目?
- 如果你是需求单位,找技术人员部署这些项目即可,有必要的话可以修改源码定制。每个项目的readme里有运行和部署的说明文档。
- 如果你是外包开发商,可以把这些系统快速交付给你的客户。不需要为DCloud付费。
- 如果你想运营SaaS托管平台,让各个单位可以免部署直接开户,也没问题,欢迎基于这些开源项目改造,自建多账户托管的平台。不需要为DCloud付费。
一句话,代码、服务器,全白用,只为抗疫做贡献!
开源项目总地址:https://gitee.com/dcloud/xinguan2020/
案例汇总地址:http://xinguan2020.dcloud.net.cn/
交流QQ群:797192690
收起阅读 »
HBuilderX内置控制台在插件安装了npm情况下 无法运行命令npm和Node 但是明明已经插件中安装了npm
HBuilderX内置控制台在插件安装了npm情况下 无法运行命令npm和Node 但是明明已经插件中安装了npm
这个需要安装NODE和NPM在电脑里面而不是直接使用插件里面的那个NPM
哪位可以实验一下
HBuilderX内置控制台在插件安装了npm情况下 无法运行命令npm和Node 但是明明已经插件中安装了npm
这个需要安装NODE和NPM在电脑里面而不是直接使用插件里面的那个NPM
哪位可以实验一下

Hx alpha 最新版,无法播放拉流
Hx alpha最新版 ios 12.4.5 无法播放拉流 普通视频没问题,切换到上一版本就可以播放了 android 没有这问题
Hx alpha最新版 ios 12.4.5 无法播放拉流 普通视频没问题,切换到上一版本就可以播放了 android 没有这问题