HBuilderX

HBuilderX

极客开发工具
uni-app

uni-app

开发一次,多端覆盖
uniCloud

uniCloud

云开发平台
HTML5+

HTML5+

增强HTML5的功能体验
MUI

MUI

上万Star的前端框架

uni小程序SDK 更新日志

小程序SDK MiniSDK

请移步 新的文档,此文档已停止更新

2020年04月21日发布

点击下载SDK UniMP_iOS_SDK@2.6.15.20200421

  • 需使用HBuilderX(2.6.15)版本生成 小程序App 资源
  • 其他更新 详情

2020年04月19日发布

点击下载SDK UniMP_iOS_SDK@2.6.14.20200419

  • 需使用HBuilderX(2.6.14)版本生成 小程序App 资源
  • iOS平台 补齐 wgt 编译版本与js框架版本校验,不一致会弹窗提示 详情
  • iOS平台 修复 小程序内 wgt 热更新资源后启动会显示一下 LaunchScreen.storyboard 页面的Bug
  • 其他更新 详情

2020年04月15日发布

点击下载SDK UniMP_iOS_SDK@2.6.13.20200414

  • 需使用HBuilderX(2.6.13)版本生成 小程序App 资源。
  • 更新 详情

2020年04月13日发布

点击下载SDK UniMP_iOS_SDK@2.6.12.20200412

  • 需使用HBuilderX(2.6.12)版本生成 小程序App 资源。
  • 更新 详情

2020年04月09日发布

点击下载SDK UniMP_iOS_SDK@2.6.11.20200409

  • 需使用HBuilderX(2.6.11)版本生成 小程序App 资源。
  • 更新 uni-jsframework 框架;
  • 其他更新 详情

2020年04月03日发布

点击下载SDK UniMP_iOS_SDK@2.6.10.20200403

  • 需使用HBuilderX(2.6.10)版本生成 小程序App 资源。
  • 更新 uni-jsframework 框架;
  • 新增 宿主与小程序通讯机制 详情
  • 修复 在监听小程序被关闭的方法中紧接着在打开小程序可能会崩溃的Bug
  • 修复 uni.chooseImage 引起内存泄露的Bug
  • 其他更新 详情

2020年04月03日发布

点击下载SDK UniMP_iOS_SDK@2.6.9.20200403

  • 需使用HBuilderX(2.6.9)版本生成 小程序App 资源。
  • 更新 uni-jsframework 框架;
  • 其他更新详情

2020年03月30日发布

点击下载SDK UniMP_iOS_SDK@2.6.8.20200330

  • 需使用HBuilderX(2.6.8)版本生成 小程序App 资源。
  • 更新 uni-jsframework 框架;
  • 其他更新详情

2020年03月19日发布

点击下载SDK UniMP_iOS_SDK@2.6.6.20200319

  • 需使用HBuilderX(2.6.6)版本生成 小程序App 资源。
  • 新增 获取当前显示小程序页面直达Url方法(用于启动直达二级页面)iOSAndroid
  • 新增 获取已部署的小程序资源版本信息方法 iOSAndroid
  • 新增 胶囊按钮添加点击效果
  • 开放 小程序内部调用 plus.runtime.install 热更新wgt资源 详情
  • 修复 原生工程勾选 'Hide status bar' 导致小程序页面导航栏被系统状态栏挡住的Bug
  • 修复 pickDate、pickTime 无法显示的Bug
  • 基础库移除对 StoreKit.framework 的依赖

2020年03月10日发布

点击下载SDK UniMP_iOS_SDK@2.6.4.20200310

  • 需使用HBuilderX(2.6.4 alpha版,或 2.6.5 正式版)生成 小程序App 资源。
  • 更新 uni-jsframework 框架;

2020年03月05日发布

点击下载SDK UniMP_iOS_SDK@2.6.3.20200305

  • 需使用HBuilderX(2.6.3)版本生成 小程序App 资源。
  • 新增 启动小程序支持传入参数及直达指定页面 详情
  • 新增 关闭当前小程序方法及小程序关闭回调方法 详情
  • 新增 获取当前运行的小程序appid方法

2020年02月25日发布

点击下载SDK UniMP_iOS_SDK@2.6.1.20200225

  • 需使用HBuilderX(2.6.1)版本生成 小程序App 资源。
  • 修改集成小程序资源为 wgt 包,详情请查看集成文档关于生成小程序应用资源说明;

2020年02月12日发布

点击下载SDK UniMP_iOS_SDK@2.5.11.20200212

  • 需使用HBuilderX(2.5.11.20200212)版本生成 小程序App 资源。
  • 修复反复打开关闭小程序导致内存不断增加的Bug;

2020年02月05日发布

点击下载SDK UniMP_iOS_SDK@2.5.10.20200205

  • 需使用HBuilderX(2.5.10.20200205)版本生成 小程序App 资源。

2020年04月21日发布

点击下载SDK UniMP_ANDROID_SDK@2.6.15.20200421.zip

  • 需使用HBuilderX(2.6.15)版本生成 小程序App 资源。
  • 其他更新 详情

历史版本

链接: https://pan.baidu.com/s/1Gb19IMm2ihRA0u4MNzCT4Q 提取码: hnug

  1. 部分功能开源地址见:iOSAndroid
  2. 还有部分源码未提交GitHub,如需获取全部源代码,请发邮件到bd@dcloud.io联系。获取源码无需付费,但目前仅针对大型开发商提供源码。
继续阅读 »

请移步 新的文档,此文档已停止更新

2020年04月21日发布

点击下载SDK UniMP_iOS_SDK@2.6.15.20200421

  • 需使用HBuilderX(2.6.15)版本生成 小程序App 资源
  • 其他更新 详情

2020年04月19日发布

点击下载SDK UniMP_iOS_SDK@2.6.14.20200419

  • 需使用HBuilderX(2.6.14)版本生成 小程序App 资源
  • iOS平台 补齐 wgt 编译版本与js框架版本校验,不一致会弹窗提示 详情
  • iOS平台 修复 小程序内 wgt 热更新资源后启动会显示一下 LaunchScreen.storyboard 页面的Bug
  • 其他更新 详情

2020年04月15日发布

点击下载SDK UniMP_iOS_SDK@2.6.13.20200414

  • 需使用HBuilderX(2.6.13)版本生成 小程序App 资源。
  • 更新 详情

2020年04月13日发布

点击下载SDK UniMP_iOS_SDK@2.6.12.20200412

  • 需使用HBuilderX(2.6.12)版本生成 小程序App 资源。
  • 更新 详情

2020年04月09日发布

点击下载SDK UniMP_iOS_SDK@2.6.11.20200409

  • 需使用HBuilderX(2.6.11)版本生成 小程序App 资源。
  • 更新 uni-jsframework 框架;
  • 其他更新 详情

2020年04月03日发布

点击下载SDK UniMP_iOS_SDK@2.6.10.20200403

  • 需使用HBuilderX(2.6.10)版本生成 小程序App 资源。
  • 更新 uni-jsframework 框架;
  • 新增 宿主与小程序通讯机制 详情
  • 修复 在监听小程序被关闭的方法中紧接着在打开小程序可能会崩溃的Bug
  • 修复 uni.chooseImage 引起内存泄露的Bug
  • 其他更新 详情

2020年04月03日发布

点击下载SDK UniMP_iOS_SDK@2.6.9.20200403

  • 需使用HBuilderX(2.6.9)版本生成 小程序App 资源。
  • 更新 uni-jsframework 框架;
  • 其他更新详情

2020年03月30日发布

点击下载SDK UniMP_iOS_SDK@2.6.8.20200330

  • 需使用HBuilderX(2.6.8)版本生成 小程序App 资源。
  • 更新 uni-jsframework 框架;
  • 其他更新详情

2020年03月19日发布

点击下载SDK UniMP_iOS_SDK@2.6.6.20200319

  • 需使用HBuilderX(2.6.6)版本生成 小程序App 资源。
  • 新增 获取当前显示小程序页面直达Url方法(用于启动直达二级页面)iOSAndroid
  • 新增 获取已部署的小程序资源版本信息方法 iOSAndroid
  • 新增 胶囊按钮添加点击效果
  • 开放 小程序内部调用 plus.runtime.install 热更新wgt资源 详情
  • 修复 原生工程勾选 'Hide status bar' 导致小程序页面导航栏被系统状态栏挡住的Bug
  • 修复 pickDate、pickTime 无法显示的Bug
  • 基础库移除对 StoreKit.framework 的依赖

2020年03月10日发布

点击下载SDK UniMP_iOS_SDK@2.6.4.20200310

  • 需使用HBuilderX(2.6.4 alpha版,或 2.6.5 正式版)生成 小程序App 资源。
  • 更新 uni-jsframework 框架;

2020年03月05日发布

点击下载SDK UniMP_iOS_SDK@2.6.3.20200305

  • 需使用HBuilderX(2.6.3)版本生成 小程序App 资源。
  • 新增 启动小程序支持传入参数及直达指定页面 详情
  • 新增 关闭当前小程序方法及小程序关闭回调方法 详情
  • 新增 获取当前运行的小程序appid方法

2020年02月25日发布

点击下载SDK UniMP_iOS_SDK@2.6.1.20200225

  • 需使用HBuilderX(2.6.1)版本生成 小程序App 资源。
  • 修改集成小程序资源为 wgt 包,详情请查看集成文档关于生成小程序应用资源说明;

2020年02月12日发布

点击下载SDK UniMP_iOS_SDK@2.5.11.20200212

  • 需使用HBuilderX(2.5.11.20200212)版本生成 小程序App 资源。
  • 修复反复打开关闭小程序导致内存不断增加的Bug;

2020年02月05日发布

点击下载SDK UniMP_iOS_SDK@2.5.10.20200205

  • 需使用HBuilderX(2.5.10.20200205)版本生成 小程序App 资源。

2020年04月21日发布

点击下载SDK UniMP_ANDROID_SDK@2.6.15.20200421.zip

  • 需使用HBuilderX(2.6.15)版本生成 小程序App 资源。
  • 其他更新 详情

历史版本

链接: https://pan.baidu.com/s/1Gb19IMm2ihRA0u4MNzCT4Q 提取码: hnug

  1. 部分功能开源地址见:iOSAndroid
  2. 还有部分源码未提交GitHub,如需获取全部源代码,请发邮件到bd@dcloud.io联系。获取源码无需付费,但目前仅针对大型开发商提供源码。
收起阅读 »

Android平台隐私与政策提示框配置方法

隐私政策 隐私 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
    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
    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库和主题、请求、代码规范等插拔式应用框架

uniapp

源码地址: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 | 开发姿势:

  1. 工具,先下载各平台开发工具(IDE)https://uniapp.dcloud.io/quickstart
  2. 在Hbuilder中导入当前项目(uni-app类型),修改或更新当前配置,manifest.json和pages.json
  3. 配置插件,菜单栏点击插件管理可以安装当前项目所需要的插件和loader,(less、babel、es6等),npm insatll (步骤3不分先后)
  4. 菜单栏点击运行到要开发的小程序平台,不习惯当前IDE的可以切换到VS Code,同步开发,实时编译
  5. 进入各家开发者后台,提审,发布
  6. 更多补充中

注意事项/坑:
使用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 | 开发姿势:

  1. 工具,先下载各平台开发工具(IDE)https://uniapp.dcloud.io/quickstart
  2. 在Hbuilder中导入当前项目(uni-app类型),修改或更新当前配置,manifest.json和pages.json
  3. 配置插件,菜单栏点击插件管理可以安装当前项目所需要的插件和loader,(less、babel、es6等),npm insatll (步骤3不分先后)
  4. 菜单栏点击运行到要开发的小程序平台,不习惯当前IDE的可以切换到VS Code,同步开发,实时编译
  5. 进入各家开发者后台,提审,发布
  6. 更多补充中

注意事项/坑:
使用Vue.js注意事项 https://uniapp.dcloud.io/use
根据不同平台小程序做条件编译(非常重要)https://uniapp.dcloud.io/platform
高级开发技巧 https://uniapp.dcloud.io/snippet
性能优化建议 https://uniapp.dcloud.io/performance

收起阅读 »

开发者中心Unipush推送页面优化介绍

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

titleNView uniapp

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

HBuilderX内置控制台在插件安装了npm情况下 无法运行命令npm和Node 但是明明已经插件中安装了npm
这个需要安装NODE和NPM在电脑里面而不是直接使用插件里面的那个NPM
哪位可以实验一下

HBuilderX内置控制台在插件安装了npm情况下 无法运行命令npm和Node 但是明明已经插件中安装了npm
这个需要安装NODE和NPM在电脑里面而不是直接使用插件里面的那个NPM
哪位可以实验一下