提交 86052e5d 编写于 作者: hbcui1984's avatar hbcui1984

Merge branch 'master' of https://github.com/dcloudio/unidocs-zh

node_modules
docs/.vuepress/dist
.DS_Store
root/sitemap.xml
\ No newline at end of file
root/sitemap.xml
dist
\ No newline at end of file
......@@ -6,13 +6,13 @@ uni-app 基于 ECMAScript 扩展了 uni 对象,并且 API 命名与小程序
## 标准 js 和浏览器 js 的区别
`uni-app`的 js 代码,h5 端运行于浏览器中。非 h5 端(包含小程序和 App),Android 平台运行在 v8 引擎中,iOS 平台运行在 iOS 自带的 jscore 引擎中,都没有运行在浏览器或 webview 里。
`uni-app`的 js 代码,web端运行于浏览器中。非web端(包含小程序和 App),Android 平台运行在 v8 引擎中,iOS 平台运行在 iOS 自带的 jscore 引擎中,都没有运行在浏览器或 webview 里。
H5 端,虽然不支持 window、document、navigator 等浏览器的 js API,但也支持标准 ECMAScript。
web端,虽然不支持 window、document、navigator 等浏览器的 js API,但也支持标准 ECMAScript。
请注意不要把浏览器里的 js 扩展对象等价于标准 js。
请注意不要把浏览器里的 js 等价于标准 js。
所以 uni-app 的非 H5 端,一样支持标准 js,支持 if、for 等语法,支持字符串、数字、时间、布尔值、数组、自定义对象等变量类型及各种处理方法。仅仅是不支持 window、document、navigator 等浏览器专用对象。
所以 uni-app 的web端,一样支持标准 js,支持 if、for 等语法,支持字符串、数字、时间、布尔值、数组、自定义对象等变量类型及各种处理方法。仅仅是不支持 window、document、navigator 等浏览器专用对象。
## 各端特色 API 调用
......
::: warning 注意
推荐使用 [uni统计2.0](uni-stat-v2.html)
推荐使用 [uni统计2.0](https://uniapp.dcloud.io/uni-stat-v2.html)
:::
## 统计
......@@ -79,7 +79,9 @@ uni.report('search',{
```
自定义事件上报后,在统计后台的`事件和转换`栏目中,可以看到上报的事件情况。
自定义事件上报后:
- 统计1.0在统计后台的`事件和转换`栏目中,可以看到上报的事件情况。
- 统计2.0在uni-admin后台的`uni 统计 --> 自定义事件`栏目中,可以看到上报的事件情况。
::: tip 提示
- 小程序平台,需将`tongji.dcloud.net.cn`配入域名白名单,[详见](https://ask.dcloud.net.cn/article/36298)
......
......@@ -14,15 +14,42 @@
|scene|Number|启动时的场景值,具体值含义请查看各平台文档说明|其他平台均支持,`字节小程序(1.12.0)`|
|query|Object|启动时的 query 参数|其他平台均支持,`字节小程序(1.12.0)`|
|referrerInfo|Object|来源信息。如果没有则返回 `{}`|其他平台均支持,`字节小程序(1.15.0)`|
|channel|String|如果应用没有设置渠道标识,则返回空字符串。取值如下|`仅 App 支持`|
|launcher|String|应用启动来源。取值如下|`仅 App 支持`|
|forwardMaterials|Array.\<Object\>|打开的文件信息数组,只有从聊天素材场景打开(scene为1173)才会携带该参数|`微信小程序`|
|chatType|number|打开的文件信息数组,只有从聊天素材场景打开(scene为1173)才会携带该参数|`仅微信小程序`|
|apiCategory|string|API 类别|`仅微信小程序(2.20.0)`|
|showFrom|number|唤起小程序的方式,目前取值固定为 10,表示通过 schema 唤起|`仅字节小程序(1.90.0)`|
|mode|'default' | 'halfPage'|启动小程序的模式|`仅快手小程序`|
|mode|'default' \| 'halfPage'|启动小程序的模式|`仅快手小程序`|
**Object referrerInfo**
|属性|类型|说明|平台差异说明|
|:-|:-|:-|:-|
|appId|String|来源小程序 appId |其他平台均支持,`字节小程序(1.15.0)`|
|extraData|Object|来源小程序传过来的数据。|其他平台均支持,`字节小程序(1.15.0)`|
\ No newline at end of file
|extraData|Object|来源小程序传过来的数据。|其他平台均支持,`字节小程序(1.15.0)`|
**channel 取值**
> 默认提供 `7` 个渠道(`Google`、`360`、`小米`、`华为`、`应用宝`、`vivo`、`oppo`),更多可以在`manifest.json`文件中【源码视图】进行配置,[详情](https://ask.dcloud.net.cn/article/35974)
| 默认渠道 | 渠道标识ID |
| ------------ | -------- |
| GooglePlay | google |
| 应用宝 | yyb |
| 360应用市场 | 360 |
| 华为应用商店 | huawei |
| 小米应用商店 | xiaomi |
| vivo应用商店 | vivo|
| oppo应用商店 | oppo |
**launcher 取值**
| 值 | 说明 |
| ------------ | -------- |
| default | 默认启动方式,通常表示应用列表启动(360手助中搜索启动) |
| scheme | 通过urlscheme方式触发启动 |
| push | 通过点击系统通知方式触发启动 |
| uniLink | 通过通用链接(universal link)启动应用 |
| miniProgram | 通过微信小程序启动应用 |
| shortcut | 通过快捷方式启动,iOS平台表示通过3D Touch快捷方式,Android平台表示通过桌面快捷方式启动 |
| barcode | 通过二维码扫描启动|
\ No newline at end of file
......@@ -14,12 +14,14 @@
|scene|Number|启动时的场景值,具体值含义请查看各平台文档说明。钉钉小程序在 IDE 恒为0000,真机不支持。|其他平台均支持,`字节小程序(1.12.0)`|
|query|Object|启动时的 query 参数|其他平台均支持,`字节小程序(1.12.0)`|
|referrerInfo|Object|来源信息。如果没有则返回 `{}`|其他平台均支持,`字节小程序(1.15.0)``飞书小程序不支持``钉钉小程序不支持`|
|channel|String|如果应用没有设置渠道标识,则返回空字符串。取值如下|`仅 App 支持`|
|launcher|String|应用启动来源。取值如下|`仅 App 支持`|
|forwardMaterials|Array.\<Object\>|打开的文件信息数组,只有从聊天素材场景打开(scene为1173)才会携带该参数|`微信小程序``QQ小程序`|
|entryDataHash|string|群入口信息,通过群应用商店打开、群分享卡片打开的小程序可获得|`仅QQ小程序`|
|chatType|number|打开的文件信息数组,只有从聊天素材场景打开(scene为1173)才会携带该参数|`仅微信小程序`|
|apiCategory|string|API 类别|`仅微信小程序(2.20.0)`|
|showFrom|number|唤起小程序的方式,目前取值固定为 10,表示通过 schema 唤起|`仅字节小程序(1.90.0)`|
|mode|'default' | 'halfPage'|启动小程序的模式|`仅快手小程序`|
|mode|'default' \| 'halfPage'|启动小程序的模式|`仅快手小程序`|
|subScene|string|子场景值(定义待补充)|`仅飞书小程序`|
**Object referrerInfo**
......@@ -27,4 +29,29 @@
|属性|类型|说明|平台差异说明|
|:-|:-|:-|:-|
|appId|String|来源小程序 appId |其他平台均支持,`字节小程序(1.15.0)`|
|extraData|Object|来源小程序传过来的数据|其他平台均支持,`字节小程序(1.15.0)`|
\ No newline at end of file
|extraData|Object|来源小程序传过来的数据|其他平台均支持,`字节小程序(1.15.0)`|
**channel 取值**
> 默认提供 `7` 个渠道(`Google`、`360`、`小米`、`华为`、`应用宝`、`vivo`、`oppo`),更多可以在`manifest.json`文件中【源码视图】进行配置,[详情](https://ask.dcloud.net.cn/article/35974)
| 默认渠道 | 渠道标识ID |
| ------------ | -------- |
| GooglePlay | google |
| 应用宝 | yyb |
| 360应用市场 | 360 |
| 华为应用商店 | huawei |
| 小米应用商店 | xiaomi |
| vivo应用商店 | vivo|
| oppo应用商店 | oppo |
**launcher 取值**
| 值 | 说明 |
| ------------ | -------- |
| default | 默认启动方式,通常表示应用列表启动(360手助中搜索启动) |
| scheme | 通过urlscheme方式触发启动 |
| push | 通过点击系统通知方式触发启动 |
| uniLink | 通过通用链接(universal link)启动应用 |
| miniProgram | 通过微信小程序启动应用 |
| shortcut | 通过快捷方式启动,iOS平台表示通过3D Touch快捷方式,Android平台表示通过桌面快捷方式启动 |
| barcode | 通过二维码扫描启动|
\ No newline at end of file
`App.vue`是uni-app的主组件,所有页面都是在`App.vue`下进行切换的,是页面入口文件。但`App.vue`本身不是页面,这里不能编写视图元素。
`App.vue`是uni-app的主组件,所有页面都是在`App.vue`下进行切换的,是页面入口文件。但`App.vue`本身不是页面,这里不能编写视图元素,也就是没有`<template>`
这个文件的作用包括:调用应用生命周期函数、配置全局样式、配置全局的存储globalData
应用生命周期仅可在`App.vue`中监听,在页面监听无效。
## 应用生命周期@applifecycle
``uni-app`` 支持如下应用生命周期函数:
......@@ -38,6 +39,7 @@
**注意**
- **应用生命周期仅可在`App.vue`中监听,在其它页面监听无效**
- 应用启动参数,可以在API `uni.getLaunchOptionsSync`获取,[详见](https://uniapp.dcloud.net.cn/api/plugins/getLaunchOptionsSync.html#getlaunchoptionssync)
- onlaunch里进行页面跳转,如遇白屏报错,请参考[https://ask.dcloud.net.cn/article/35942](https://ask.dcloud.net.cn/article/35942)
- `App.vue` 不能写模板
- onPageNotFound 页面实际上已经打开了(比如通过分享卡片、小程序码)且发现页面不存在,才会触发,api 跳转不存在的页面不会触发(如 uni.navigateTo)
......
......@@ -619,645 +619,6 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http
}
```
### 完整 manifest.json@full-manifest
```javascript
{
"appid": "__UNI__XXXXXX,创建应用时云端分配的,不要修改。",
"name": "应用名称,如uni-app",
"description": "应用描述",
"versionName": "1.0.0",
"versionCode": "100",
"uniStatistics": {
"enable": false
},
"app-plus": {
"nvueCompiler": "weex", //可选,字符串类型,nvue页面编译模式,可取值uni-app、weex,参考:https://ask.dcloud.net.cn/article/36074
"nvueStyleCompiler": "weex", //可选,字符串类型,nvue页面样式编译模式,可取值uni-app、weex,参考:https://ask.dcloud.net.cn/article/38751
"renderer": "native", //可选,字符串类型,可不加载基于 webview 的运行框架,可取值native
"compilerVersion": 2, //可选,数字类型,编译器版本,可取值2、3,参考:https://ask.dcloud.net.cn/article/36599
"nvueLaunchMode": "normal", //可选,字符串类型,nvue首页启动模式,compilerVersion值为3时生效,可取值normal、fast,参考:https://ask.dcloud.net.cn/article/36749
"nvue": { //可选,JSON对象,nvue页面相关配置
"flex-direction": "row" //可选,字符串类型,nvue页面的flex-direction默认值,可取值row、row-reverse、column、column-reverse
},
"optimization": { //可选,JSON对象,分包配置
"subPackages": true //可选,Boolean类型,是否开启分包优化,参考:https://uniapp.dcloud.io/collocation/pages.html#subpackages
},
"uniStatistics": { //可选,JSON对象,uni统计配置
"enable": true, //可选,Boolean类型,是否开启uni统计
},
"screenOrientation": [ //可选,字符串数组类型,应用支持的横竖屏
"portrait-primary", //可选,字符串类型,支持竖屏
"portrait-secondary", //可选,字符串类型,支持反向竖屏
"landscape-primary", //可选,字符串类型,支持横屏
"landscape-secondary" //可选,字符串类型,支持反向横屏
],
"splashscreen": { //可选,JSON对象,splash界面配置
"alwaysShowBeforeRender": true, //可选,Boolean类型,是否等待首页渲染完毕后再关闭启动界面
"autoclose": true, //可选,Boolean类型,是否自动关闭启动界面
"waiting": true, //可选,Boolean类型,是否在程序启动界面显示等待雪花
"event": "loaded", //可选,字符串类型,可取值titleUpdate、rendering、loaded,uni-app项目已废弃
"target": "defalt", //可选,字符串类型,可取值default、second,uni-app项目已废弃
"dealy": 0, //可选,数字类型,延迟自动关闭启动时间,单位为毫秒,uni-app项目已废弃
"ads": { //可选,JSON对象,开屏广告配置
"backaground": "#RRGGBB", //可选,字符串类型,格式为#RRGGBB,开屏广告背景颜色
"image": "" //可选,字符串类型,底部图片地址,相对应用资源目录路径
},
"androidTranslucent": false //可选,Boolean类型,使用“自定义启动图”启动界面时是否显示透明过渡界面,可解决点击桌面图标延时启动应用的效果
},
"modules": { //可选,JSON对象,使用的模块
"Bluetooth": { //可选,JSON对象,Bluetooth(低功耗蓝牙)
"description": "低功耗蓝牙"
},
"Contacts": { //可选,JSON对象,Contact(通讯录)
"description": "通讯录"
},
"FaceID": { //可选,JSON对象,FaceID(人脸识别),仅iOS支持
"description": "人脸识别"
},
"Fingerprint": { //可选,JSON对象,Fingerprint(指纹识别)
"description": "指纹识别"
},
"Geolocation": { //可选,JSON对象,Geolocation(定位)
"description": "定位"
},
"iBeacon": { //可选,JSON对象,iBeacon
"description": "iBeacon"
},
"LivePusher": { //可选,JSON对象,LivePusher(直播推流)
"description": "直播推流"
},
"Maps": { //可选,JSON对象,Maps(地图)
"description": "地图"
},
"Messaging": { //可选,JSON对象,Messaging(短彩邮件消息)
"description": "短彩邮件消息"
},
"OAuth": { //可选,JSON对象,OAuth(登录鉴权)
"description": "登录鉴权"
},
"Payment": { //可选,JSON对象,Payment(支付)
"description": "iBeacon"
},
"Push": { //可选,JSON对象,Push(消息推送)
"description": "iBeacon"
},
"Share": { //可选,JSON对象,Share(分享)
"description": "iBeacon"
},
"Speech": { //可选,JSON对象,Speech(语音输入)
"description": "iBeacon"
},
"Statistic": { //可选,JSON对象,Statistic(统计)
"description": "iBeacon"
},
"SQLite": { //可选,JSON对象,SQLite(统计)
"description": "iBeacon"
},
"VideoPlayer": { //可选,JSON对象,VideoPlayer(视频播放)
"description": "iBeacon"
},
"Webview-x5": { //可选,JSON对象,Android X5 Webview(腾讯TBS),仅Android支持
"description": "iBeacon"
},
"UIWebview": { //可选,JSON对象,UIWebview,仅iOS支持
"description": "iBeacon"
}
},
"webView": { // 3.5.0 + 当系统webview低于指定版本时,会弹出提示。或者下载x5内核后继续启动,仅Android支持
"minUserAgentVersion": "95.0.4638.75", // 最小webview版本
"x5": { // 此属性需要勾选 Android X5 Webview 模块,详细参见下面的说明
"timeOut": 3000, // 超时时间
"showTipsWithoutWifi": true, // 是否在非WiFi网络环境时,显示用户确认下载x5内核的弹窗。
"allowDownloadWithoutWiFi": false // 是否允许用户在非WiFi网络时进行x5内核的下载。(如果为true,就不会显示用户确认的弹窗。)
}
},
"distribute": { //必选,JSON对象,云端打包配置
"android": { //可选,JSON对象,Android平台云端打包配置
"packagename": "", //必填,字符串类型,Android包名
"keystore": "", //必填,字符串类型,Android签名证书文件路径
"password": "", //必填,字符串类型,Android签名证书文件的密码
"aliasname": "", //必填,字符串类型,Android签名证书别名
"schemes": "", //可选,字符串类型,参考:https://uniapp.dcloud.io/tutorial/app-android-schemes
"abiFilters": [ //可选,字符串数组类型,参考:https://uniapp.dcloud.io/tutorial/app-android-abifilters
"armeabi-v7a",
"arm64-v8a",
"x86",
"x86_64"
],
"permissions": [ //可选,字符串数组类型,Android权限配置
"<uses-feature android:name=\"android.hardware.camera\"/>"
],
"custompermissions": false, //可选,Boolean类型,是否自定义Android权限配置
"permissionExternalStorage": { //可选,JSON对象,Android平台应用启动时申请读写手机存储权限策略
"request": "always", //必填,字符串类型,申请读写手机存储权限策略,可取值none、once、always
"prompt": "" //可选,字符串类型,当request设置为always值用户拒绝时弹出提示框上的内容
},
"permissionPhoneState": { //可选,JSON对象,Android平台应用启动时申请读取设备信息权限配置
"request": "always", //必填,字符串类型,申请读取设备信息权限策略,可取值none、once、always
"prompt": "" //可选,字符串类型,当request设置为always值用户拒绝时弹出提示框上的内容
},
"minSdkVersion": 21, //可选,数字类型,Android平台最低支持版本,参考:https://uniapp.dcloud.io/tutorial/app-android-minsdkversion
"targetSdkVersion": 30, //可选,数字类型,Android平台目标版本,参考:https://uniapp.dcloud.io/tutorial/app-android-targetsdkversion
"packagingOptions": [ //可选,字符串数组类型,Android平台云端打包时build.gradle的packagingOptions配置项
"doNotStrip '*/armeabi-v7a/*.so'",
"merge '**/LICENSE.txt'"
],
"jsEngine": "v8", //可选,字符串类型,uni-app使用的JS引擎,可取值v8、jsc
"debuggable": false, //可选,Boolean类型,是否开启Android调试开关
"locale": "default", //可选,应用的语言
"forceDarkAllowed": false, //可选,Boolean类型,是否强制允许暗黑模式
"resizeableActivity": false, //可选,Boolean类型,是否支持分屏调整窗口大小
"hasTaskAffinity": false, //可选,Boolean类型,是否设置android:taskAffinity
"buildFeatures": { //(HBuilderX3.5.0+版本支持)可选,JSON对象,Android平台云端打包时build.gradle的buildFeatures配置项
"dataBinding": false, //可选,Boolean类型,是否设置dataBinding
"viewBinding": false //可选,Boolean类型,是否设置viewBinding
}
},
"ios": { //可选,JSON对象,iOS平台云端打包配置
"appid": "", //必填,字符串类型,iOS平台Bundle ID
"mobileprovision": "", //必填,字符串类型,iOS打包使用的profile文件路径
"p12": "", //必填,字符串类型,iOS打包使用的证书文件路径
"password": "", //必填,字符串类型,iOS打包使用的证书密码
"devices": "iphone", //必填,字符串类型,iOS支持的设备类型,可取值iphone、ipad、universal
"urlschemewhitelist": "baidumap",//可选,字符串类型,应用访问白名单列表,参考:https://uniapp.dcloud.io/tutorial/app-ios-schemewhitelist
"urltypes": "", //可选,字符串类型,参考:https://uniapp.dcloud.io/tutorial/app-ios-schemes
"UIBackgroundModes": "audio", //可选,字符串类型,应用后台运行模式,参考:https://uniapp.dcloud.io/tutorial/app-ios-uibackgroundmodes
"frameworks": [ //可选,字符串数组类型,依赖的系统库,已废弃,推荐使用uni原生插件扩展使用系统依赖库
"CoreLocation.framework"
],
"deploymentTarget": "10.0", //可选,字符串类型,iOS支持的最低版本
"privacyDescription": { //可选,JSON对象,iOS隐私信息访问的许可描述
"NSPhotoLibraryUsageDescription": "", //可选,字符串类型,系统相册读取权限描述
"NSPhotoLibraryAddUsageDescription": "", //可选,字符串类型,系统相册写入权限描述
"NSCameraUsageDescription": "", //可选,字符串类型,摄像头使用权限描述
"NSMicrophoneUsageDescription": "", //可选,字符串类型,麦克风使用权限描述
"NSLocationWhenInUseUsageDescription": "", //可选,字符串类型,运行期访问位置权限描述
"NSLocationAlwaysUsageDescription": "", //可选,字符串类型,后台运行访问位置权限描述
"NSLocationAlwaysAndWhenInUseUsageDescription": "", //可选,字符串类型,运行期后后台访问位置权限描述
"NSCalendarsUsageDescription": "", //可选,字符串类型,使用日历权限描述
"NSContactsUsageDescription": "", //可选,字符串类型,使用通讯录权限描述
"NSBluetoothPeripheralUsageDescription": "", //可选,字符串类型,使用蓝牙权限描述
"NSBluetoothAlwaysUsageDescription": "", //可选,字符串类型,后台使用蓝牙权限描述
"NSSpeechRecognitionUsageDescription": "", //可选,字符串类型,系统语音识别权限描述
"NSRemindersUsageDescription": "", //可选,字符串类型,系统提醒事项权限描述
"NSMotionUsageDescription": "", //可选,字符串类型,使用运动与健康权限描述
"NSHealthUpdateUsageDescription": "", //可选,字符串类型,使用健康更新权限描述
"NSHealthShareUsageDescription": "", //可选,字符串类型,使用健康分享权限描述
"NSAppleMusicUsageDescription": "", //可选,字符串类型,使用媒体资料库权限描述
"NFCReaderUsageDescription": "", //可选,字符串类型,使用NFC权限描述
"NSHealthClinicalHealthRecordsShareUsageDescription": "", //可选,字符串类型,访问临床记录权限描述
"NSHomeKitUsageDescription": "", //可选,字符串类型,访问HomeKit权限描述
"NSSiriUsageDescription": "", //可选,字符串类型,访问Siri权限描述
"NSFaceIDUsageDescription": "", //可选,字符串类型,使用FaceID权限描述
"NSLocalNetworkUsageDescription": "", //可选,字符串类型,访问本地网络权限描述
"NSUserTrackingUsageDescription": "" //可选,字符串类型,跟踪用户活动权限描述
},
"idfa": true, //可选,Boolean类型,是否使用广告标识
"capabilities": { //可选,JSON对象,应用的能力配置(Capabilities)
},
"CFBundleName": "HBuilder", //可选,字符串类型,CFBundleName名称
"validArchitectures": [ //可选,字符串数组类型,编译时支持的CPU指令,可取值arm64、arm64e、armv7、armv7s、x86_64
"arm64"
]
},
"sdkConfigs": { //可选,JSON对象,三方SDK相关配置
"geolocation": { //可选,JSON对象,Geolocation(定位)模块三方SDK配置
"system": { //可选,JSON对象,使用系统定位
"__platform__" : [ "ios", "android" ] //可选,字符串数组类型,支持的平台
},
"amap": { //可选,JSON对象,使用高德定位SDK配置
"__platform__" : ["ios", "android"], //可选,字符串数组类型,支持的平台
"appkey_ios": "", //必填,字符串类型,iOS平台高德定位appkey
"appkey_android": "" //必填,字符串类型,Android平台高德定位appkey
},
"baidu": { //可选,JSON对象,使用百度定位SDK配置
"__platform__" : [ "ios", "android" ], //可选,字符串数组类型,支持的平台
"appkey_ios": "", //必填,字符串类型,iOS平台百度定位appkey
"appkey_android": "" //必填,字符串类型,Android平台百度定位appkey
}
},
"maps" : { //可选,JSON对象,Maps(地图)模块三方SDK配置
"amap": { //可选,JSON对象,使用高德地图SDK配置
"appkey_ios": "", //必填,字符串类型,iOS平台高德地图appkey
"appkey_android": "" //必填,字符串类型,Android平台高德地图appkey
},
"baidu": { //可选,JSON对象,使用百度地图SDK配置
"appkey_ios": "", //必填,字符串类型,iOS平台百度地图appkey
"appkey_android": "" //必填,字符串类型,Android平台百度地图appkey
},
"google": { //可选,JSON对象,使用Google地图SDK配置
"APIKey_ios": "", //必填,字符串类型,iOS平台Google地图APIKey
"APIKey_android": "" //必填,字符串类型,Android平台Google地图APIKey
}
},
"oauth": { //可选,JSON对象,OAuth(登录鉴权)模块三方SDK配置
"univerify" : { //可选,JSON对象,使用一键登录(univerify)SDK配置,无需手动配置参数,云端打包自动获取配置参数
},
"apple": { //可选,JSON对象,使用苹果登录(Sign in with Apple)SDK配置,无配置参数,仅iOS平台支持
},
"weixin": { //可选,JSON对象,使用微信登录SDK配置
"appid": "", //必填,字符串类型,微信开放平台申请的appid
"appsecret": "", //必填,字符串类型,微信开放平台申请的appsecret
"UniversalLinks": "" //可选,字符串类型,微信开放平台配置的iOS平台通用链接
},
"qq": { //可选,JSON对象,使用QQ登录SDK配置
"appid": "", //必填,字符串类型,QQ开放平台申请的appid
"UniversalLinks": "" //可选,字符串类型,QQ开放平台配置的iOS平台通用链接
},
"sina": { //可选,JSON对象,使用新浪微博登录SDK配置
"appkey": "", //必填,字符串类型,新浪微博开放平台申请的appid
"redirect_uri": "", //必填,字符串类型,新浪微博开放平台配置的redirect_uri
"UniversalLinks": "" //可选,字符串类型,新浪微博开放平台配置的iOS平台通用链接
},
"google": { //可选,JSON对象,使用Google登录SDK配置
"clientid": "" //必填,字符串类型,Google开发者后台申请的clientid
},
"facebook": { //可选,JSON对象,使用Facebook登录SDK配置
"appid": "" //必填,字符串类型,Facebook开发者后台申请的appid
}
},
"payment": { //可选,JSON对象,Payment(支付)模块三方SDK配置
"appleiap": { //可选,JSON对象,使用Apple应用内支付配置,无配置参数,仅iOS平台支持
},
"alipay": { //可选,JSON对象,使用支付宝支付SDK配置
"__platform__": [ "ios", "android" ] //可选,字符串数组类型,支持的平台
},
"weixin": { //可选,JSON对象,使用微信支付SDK配置
"__platform__": [ "ios", "android" ], //可选,字符串数组类型,支持的平台
"appid": "", //必填,字符串类型,微信开放平台申请的appid
"UniversalLinks": "" //可选,字符串类型,微信开放平台配置的iOS平台通用链接
},
"paypal": { //可选,JSON对象,使用paypal支付SDK配置
"__platform__": [ "ios", "android" ], //可选,字符串数组类型,支持的平台
"returnURL_ios": "", //必填,字符串类型,paypa开发者者后台配置的iOS平台returnURL
"returnURL_android": "" //必填,字符串类型,paypa开发者者后台配置的Android平台returnURL
},
"stripe": { //可选,JSON对象,使用stripe支付SDK配置
"__platform__": [ "ios", "android" ], //可选,字符串数组类型,支持的平台
"returnURL_ios" : "" //必填,字符串类型,stripe开发者者后台配置的iOS平台returnURL
},
"google": { //可选,JSON对象,使用google支付SDK配置,无配置参数,仅Android平台支持
}
},
"push": { //可选,JSON对象,Push(消息推送)模块三方SDK配置
"unipush": { //可选,JSON对象,使用UniPush SDK配置,无需手动配置参数,云端打包自动获取配置参数
"icons": { //可选,JSON对象,推送图标配置
"push": { //可选,JSON对象,Push图标配置
"ldpi": "", //可选,字符串类型,普通屏设备推送图标路径,分辨率要求48x48
"mdpi": "", //可选,字符串类型,大屏设备设备推送图标路径,分辨率要求48x48
"hdpi": "", //可选,字符串类型,高分屏设备推送图标路径,分辨率要求72x72
"xdpi": "", //可选,字符串类型,720P高分屏设备推送图标路径,分辨率要求96x96
"xxdpi": "", //可选,字符串类型,1080P高密度屏幕推送图标路径,分辨率要求144x144
"xxxdpi": "", //可选,字符串类型,4K屏设备推送图标路径,分辨率要求192x192
},
"smal": { //可选,JSON对象,Push小图标配置
"ldpi": "", //可选,字符串类型,普通屏设备推送小图标路径,分辨率要求18x18
"mdpi": "", //可选,字符串类型,大屏设备设备推送小图标路径,分辨率要求24x24
"hdpi": "", //可选,字符串类型,高分屏设备推送小图标路径,分辨率要求36x36
"xdpi": "", //可选,字符串类型,720P高分屏设备推送小图标路径,分辨率要求48x48
"xxdpi": "", //可选,字符串类型,1080P高密度屏幕推送小图标路径,分辨率要求72x72
"xxxdpi": "", //可选,字符串类型,4K屏设备推送小图标路径,分辨率要求96x96
}
}
},
"igexin": { //可选,JSON对象,使用个推推送SDK配置,**已废弃,推荐使用UniPush,UniPush是个推推送VIP版,功能更强大**
"appid": "", //必填,字符串类型,个推开放平台申请的appid
"appkey": "", //必填,字符串类型,个推开放平台申请的appkey
"appsecret": "", //必填,字符串类型,个推开放平台申请的appsecret
"icons": { //可选,JSON对象,推送图标配置
"push": { //可选,JSON对象,Push图标配置
"ldpi": "", //可选,字符串类型,普通屏设备推送图标路径,分辨率要求48x48
"mdpi": "", //可选,字符串类型,大屏设备设备推送图标路径,分辨率要求48x48
"hdpi": "", //可选,字符串类型,高分屏设备推送图标路径,分辨率要求72x72
"xdpi": "", //可选,字符串类型,720P高分屏设备推送图标路径,分辨率要求96x96
"xxdpi": "", //可选,字符串类型,1080P高密度屏幕推送图标路径,分辨率要求144x144
"xxxdpi": "", //可选,字符串类型,4K屏设备推送图标路径,分辨率要求192x192
},
"smal": { //可选,JSON对象,Push小图标配置
"ldpi": "", //可选,字符串类型,普通屏设备推送小图标路径,分辨率要求18x18
"mdpi": "", //可选,字符串类型,大屏设备设备推送小图标路径,分辨率要求24x24
"hdpi": "", //可选,字符串类型,高分屏设备推送小图标路径,分辨率要求36x36
"xdpi": "", //可选,字符串类型,720P高分屏设备推送小图标路径,分辨率要求48x48
"xxdpi": "", //可选,字符串类型,1080P高密度屏幕推送小图标路径,分辨率要求72x72
"xxxdpi": "", //可选,字符串类型,4K屏设备推送小图标路径,分辨率要求96x96
}
}
}
},
"share": { //可选,JSON对象,Share(分享)模块三方SDK配置
"weixin": { //可选,JSON对象,使用微信分享SDK配置
"appid": "", //必填,字符串类型,微信开放平台申请的appid
"UniversalLinks": "" //可选,字符串类型,微信开放平台配置的iOS平台通用链接
},
"qq": { //可选,JSON对象,使用QQ分享SDK配置
"appid": "", //必填,字符串类型,QQ开放平台申请的appid
"UniversalLinks": "" //可选,字符串类型,QQ开放平台配置的iOS平台通用链接
},
"sina": { //可选,JSON对象,使用新浪微博分享SDK配置
"appkey": "", //必填,字符串类型,新浪微博开放平台申请的appid
"redirect_uri": "", //必填,字符串类型,新浪微博开放平台配置的redirect_uri
"UniversalLinks": "" //可选,字符串类型,新浪微博开放平台配置的iOS平台通用链接
}
},
"speech": { //可选,JSON对象,Speech(语音识别)模块三方SDK配置
"baidu": { //可选,JSON对象,使用百度语音识别SDK配置
"appid": "", //必填,字符串类型,百度开放平台申请的appid
"apikey": "", //必填,字符串类型,百度开放平台申请的apikey
"secretkey": "" //必填,字符串类型,百度开放平台申请的secretkey
}
},
"statics": { //可选,JSON对象,Statistic(统计)模块三方SDK配置
"umeng": { //可选,JSON对象,使用友盟统计SDK配置
"appkey_ios": "", //必填,字符串类型,友盟统计开放平台申请的iOS平台appkey
"channelid_ios": "", //可选,字符串类型,友盟统计iOS平台的渠道标识
"appkey_android": "", //必填,字符串类型,友盟统计开放平台申请的Android平台appkey
"channelid_android": "" //可选,字符串类型,友盟统计Android平台的渠道标识
},
"google" : { //可选,JSON对象,使用Google Analytics for Firebase配置
"config_ios" : "", //必填,字符串类型,Google Firebase统计开发者后台获取的iOS平台配置文件路径
"config_android" : "" //必填,字符串类型,Google Firebase统计开发者后台获取的Android平台配置文件路径
}
},
"ad": { //可选,JSON对象,uni-AD配置
"360": { //可选,JSON对象,使用360广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"csj": { //可选,JSON对象,使用今日头条穿山甲广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"gdt": { //可选,JSON对象,使用腾讯优量汇广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"ks": { //可选,JSON对象,使用快手广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"ks-content": { //可选,JSON对象,使用快手内容联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"sigmob": { //可选,JSON对象,使用Sigmob广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"hw": { //可选,JSON对象,使用华为广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"bd": { //可选,JSON对象,使用百度百青藤广告联盟SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
},
"BXM-AD": { //可选,JSON对象,使用互动游戏(变现猫)SDK,无需手动配置,在uni-AD后台申请开通后自动获取配置参数
}
}
},
"icons": { //可选,JSON对象,应用图标相关配置
"ios":{ //可选,JSON对象,iOS平台图标配置
"appstore": "", //必填,字符串类型,分辨率1024x1024, 提交app sotre使用的图标路径
"iphone":{ //可选,JSON对象,iPhone设备图标配置
"app@2x": "", //可选,字符串类型,分辨率120x120,程序图标路径
"app@3x": "", //可选,字符串类型,分辨率180x180,程序图标路径
"spotlight@2x": "", //可选,字符串类型,分辨率80x80,Spotlight搜索图标路径
"spotlight@3x": "", //可选,字符串类型,分辨率120x120,Spotlight搜索图标路径
"settings@2x": "", //可选,字符串类型,分辨率58x58,Settings设置图标路径
"settings@3x": "", //可选,字符串类型,分辨率87x87,Settings设置图标路径
"notification@2x": "", //可选,字符串类型,分辨率40x40,通知栏图标路径
"notification@3x": "" //可选,字符串类型,分辨率60x60,通知栏图标路径
},
"ipad":{ //可选,JSON对象,iPad设备图标配置
"app": "", //可选,字符串类型,分辨率76x76,程序图标图标路径
"app@2x": "", //可选,字符串类型,分辨率152x152,程序图标图标路径
"proapp@2x": "", //可选,字符串类型,分辨率167x167,程序图标图标路径
"spotlight": "", //可选,字符串类型,分辨率40x40,Spotlight搜索图标路径
"spotlight@2x": "", //可选,字符串类型,分辨率80x80,Spotlight搜索图标路径
"settings": "", //可选,字符串类型,分辨率29x29,Settings设置图标路径
"settings@2x": "", //可选,字符串类型,分辨率58x58,Settings设置图标路径
"notification": "", //可选,字符串类型,分辨率20x20,通知栏图标路径
"notification@2x": "" //可选,字符串类型,分辨率740x40,通知栏图标路径
}
},
"android":{ //可选,JSON对象,Android平台图标配置
"ldpi": "", //可选,字符串类型,普通屏设备程序图标,分辨率要求48x48,已废弃
"mdpi": "", //可选,字符串类型,大屏设备程序图标,分辨率要求48x48,已废弃
"hdpi": "", //可选,字符串类型,高分屏设备程序图标,分辨率要求72x72
"xhdpi": "", //可选,字符串类型,720P高分屏设备程序图标,分辨率要求96x96
"xxhdpi": "", //可选,字符串类型,1080P高分屏设备程序图标,分辨率要求144x144
"xxxhdpi": "" //可选,字符串类型,2K屏设备程序图标,分辨率要求192x192
}
},
"splashscreen":{ //可选,JSON对象,启动界面配置
"iosStyle": "common", //可选,字符串类型,iOS平台启动界面样式,可取值common、default、storyboard
"ios":{ //可选,JSON对象,iOS平台启动界面配置
"storyboard": "", //可选,字符串类型,自定义storyboard启动界面文件路径,iosStyle值为storyboard时生效
"iphone":{ //可选,JSON对象,iPhone设备启动图配置,iosStyle值为default时生效
"default": "", //可选,字符串类型,分辨率320x480,iPhone3(G/GS)启动图片路径,已废弃
"retina35": "", //可选,字符串类型,分辨率640x960,3.5英寸设备(iPhone4/4S)启动图片路径,已废弃
"retina40": "", //可选,字符串类型,分辨率640x1136,4.0英寸设备(iPhone5/5S)启动图片路径
"retina40l":"", //可选,字符串类型,分辨率1136x640,4.0英寸设备(iPhone5/5S)横屏启动图片路径
"retina47": "", //可选,字符串类型,分辨率750x1334,4.7英寸设备(iPhone6/7/8)启动图片路径
"retina47l": "", //可选,字符串类型,分辨率1334x750,4.7英寸设备(iPhone6/7/8)横屏启动图片路径
"retina55": "", //可选,字符串类型,分辨率1242x2208,5.5英寸设备(iPhone6/7/8Plus)启动图片路径
"retina55l": "", //可选,字符串类型,分辨率2208x1242,5.5英寸设备(iPhone6/7/8Plus)横屏启动图片路径
"iphonex": "", //可选,字符串类型,分辨率1125x2436,5.8英寸设备(iPhoneX/XS)启动图片路径
"iphonexl": "", //可选,字符串类型,分辨率2436x1125,5.8英寸设备(iPhoneX/XS)横屏启动图片路径
"portrait-896h@2x": "", //可选,字符串类型,分辨率828x1792,6.1英寸设备(iPhoneXR)启动图片路径
"landscape-896h@2x": "", //可选,字符串类型,分辨率1792x828,6.1英寸设备(iPhoneXR)iPhoneXR横屏启动图片路径
"portrait-896h@3x": "", //可选,字符串类型,分辨率1242x2688,6.5英寸设备(iPhoneXS Max)启动图片路径
"landscape-896h@3x": "" //可选,字符串类型,分辨率2688x1242,6.5英寸设备(iPhoneXS Max)横屏启动图片路径
},
"ipad":{ //可选,JSON对象,iPad设备启动图配置,iosStyle值为default时生效
"portrait": "", //可选,字符串类型,分辨率768x1004,iPad竖屏启动图片路径,已废弃
"portrait-retina": "", //可选,字符串类型,分辨率1536x2008,iPad高分屏竖屏启动图片路径,已废弃
"landscape": "", //可选,字符串类型,分辨率1024x748,iPad横屏启动图片路径,已废弃
"landscape-retina": "", //可选,字符串类型,分辨率2048x1496,iPad高分屏横屏启动图片路径,已废弃
"portrait7": "", //可选,字符串类型,分辨率768x1024,9.7/7.9英寸iPad/mini竖屏启动图片路径
"landscape7": "", //可选,字符串类型,分辨率1024x768,9.7/7.9英寸iPad/mini横屏启动图片路径
"portrait-retina7": "", //可选,字符串类型,分辨率1536x2048,9.7/7.9英寸iPad/mini高分屏竖屏图片路径
"landscape-retina7": "", //可选,字符串类型,分辨率2048x1536,9.7/7.9英寸iPad/mini高分屏横屏启动图片路径
"portrait-1112h@2x":"", //可选,字符串类型,分辨率1668x2224,10.5英寸iPad Pro竖屏启动图片路径
"landscape-1112h@2x":"", //可选,字符串类型,分辨率2224x1668,10.5英寸iPad Pro横屏启动图片路径
"portrait-1194h@2x":"", //可选,字符串类型,分辨率1668x2388,11英寸iPad Pro竖屏启动图片路径
"landscape-1194h@2x":"", //可选,字符串类型,分辨率2388x1668,11英寸iPad Pro横屏启动图片路径
"portrait-1366h@2x":"", //可选,字符串类型,分辨率2048x2732,12.9英寸iPad Pro竖屏启动图片路径
"landscape-1366h@2x":"" //可选,字符串类型,分辨率2732x2048,12.9英寸iPad Pro横屏启动图片路径
}
},
"androidStyle": "common",//可选,字符串类型,Android平台启动界面样式,可取值common、default
"android":{ //可选,JSON对象,Android平台启动图片配置, androidStyle值为default时生效
"ldpi": "", //可选,字符串类型,分辨率320x442,低密度屏幕启动图片路径,已废弃
"mdpi": "", //可选,字符串类型,分辨率240x282,中密度屏幕启动图片路径,已废弃
"hdpi": "", //可选,字符串类型,分辨率480x762,高密度屏幕启动图片路径
"xhdpi": "", //可选,字符串类型,分辨率720x1242,720P高密度屏幕启动图片路径
"xxhdpi": "" //可选,字符串类型,分辨率1080x1882,1080P高密度屏幕启动图片路径
}
},
"orientation": [ //可选,字符串数组类型,应用支持的横竖屏,**已废弃,使用screenOrientation配置**
"portrait-primary",
"portrait-secondary",
"landscape-primary",
"landscape-secondary"
]
},
"compatible": { //可选,JSON对象,uni-app兼容模式
"ignoreVersion": false, //可选,Boolean类型,是否忽略版本兼容检查提示
"runtimeVersion": "", //可选,字符串类型,兼容的uni-app运行环境版本号,多个版本使用,分割
"compilerVersion": "" //可选,字符串类型,兼容的编译器版本号
},
"confusion": { //可选,JSON对象,原生混淆加密配置,参考:https://uniapp.dcloud.io/tutorial/app-sec-confusion
"description": "", //可选,字符串类型,原生混淆描述
"resources": { //必填,JSON对象,原生混淆文件配置
"js/common.js": { //可选,JSON对象,键名为需要原生混淆的文件路径
}
},
},
"channel": "", //可选,字符串类型,渠道标识
"cers": { //可选,JSON对象,应用的异常崩溃与错误报告系统配置
"crash": true, //可选,Boolean类型,是否提交应用异常崩溃信息
},
"cache": { //可选,JSON对象,Webview窗口默认使用的缓存模式,uni-app项目已废弃
"mode": "default" //可选,字符串类型,可取值default、cacheElseNetwork、noCache、cacheOnly
},
"error": { //可选,JSON对象,页面加载错误配置,uni-app项目仅对webview组件有效,参考:https://uniapp.dcloud.io/tutorial/app-webview-error
"url": "" //必填,字符串类型,webview页面错误是跳转的页面地址
},
"kernel": { //可选,JSON对象,webview内核配置
"ios": "WKWebview", //可选,iOS平台使用的webview类型,可取值WKWebview、UIWebview
"recovery": "reload" //可选,iOS平台使用WKWebview时,内核崩溃后的处理逻辑,可取值restart、reload、none
},
"launchwebview": { //可选,JSON对象,应用首页相关配置,uni-app项目不建议手动修改
"plusrequire": "normal", //可选,字符串类型,加载plus API时机,可取值ahead、normal、later、none
"injection": false, //可选,Boolean类型,是否提前注入plus API
"overrideresource": [ //可选,JSON对象数组,应用首页的拦截资源相关配置
{
"match": "", //可选,字符串类型,匹配拦截的资源url地址的正则表达式
"redirect":"", //可选,字符串类型,拦截资源的重定向地址
"mime":"", //可选,字符串类型,拦截资源的数据类型mime
"encoding":"", //可选,字符串类型,拦截资源的数据编码
"header": { //可选,JSON对象,拦截资源的http头数据
}
}
],
"overrideurl": { //可选,JSON对象,应用首页的拦截链接请求处理逻辑
"mode": "reject", //可选,字符串类型,拦截模式,可取值allow、reject
"match": "", //可选,字符串类型,匹配拦截规则,支持正则表达式
"exclude": "none" //可选,字符串类型,排除拦截理规则,可取值none、redirect
},
"replacewebapi": { //可选,JSON对象,是否重写Web API实现相关配置
"geolocation": "none" //可选,字符串类型,重写标准定位API,可取值none、alldevice、auto
},
"subNViews": [ //可选,JSON对象数组,首页原生View相关配置,已废弃
{
"id": "", //可选,字符串类型,原生View标识
"styles": { //可选,JSON对象,原生View样式
},
"tags": [ //可选,JSON对象数组,原生View中包含的tag标签列表
{}
]
}
],
"titleNView": { //可选,JSON对象,标题栏相关配置
"backgroundColor": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,标题栏背景颜色
"titleText": "", //可选,字符串类型,标题栏标题文字内容
"titleColor": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,标题栏标题文字颜色
"titleSize": "17px", //可选,字符串类型,标题字体大小,默认大小为17px
"autoBackButton": true, //可选,Boolean类型,是否显示标题栏上返回键
"backButton": { //可选,JSON对象,返回键样式
"backgournd": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,返回按钮背景颜色
"color": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,返回图标颜色
"colorPressed": "#RRGGBB", //可选,字符串类型,#RRGGBB,返回图标按下时的颜色
},
"buttons": [ //可选,JSON对象数组,标题栏按钮配置
{
"color": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,按钮上的文字颜色
"colorPressed": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,按钮按下状态的文字颜色
"float": "right", //可选,字符串类型,按钮显示位置,可取值left、right
"fontWeight": "normal", //可选,字符串类型,按钮上文字的粗细,可取值normal、bold
"fontSize": "22px", //可选,字符串类型,按钮上文字的大小
"fontSrc": "", //可选,字符串类型,按钮上文字使用的字体文件路径
"text": "" //可选,字符串类型,按钮上显示的文字
}
],
"splitLine": { //可选,JSON对象,标题栏分割线样式
"color": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,分割线颜色
"height": "1px" //可选,字符串类型,分割线高度
}
},
"statusbar": { //可选,JSON对象,状态栏配置
"background": "#RRGGBB" //可选,字符串类型,#RRGGBB格式,沉浸式状态栏样式下系统状态栏背景颜色
},
"top": "0px", //可选,字符串类型,Webview的顶部偏移量,支持px、%单位
"height": "100%", //可选,字符串类型,Webview窗口高度,支持px、%单位
"bottom": "0px", //可选,字符串类型,Webview的底部偏移量,仅在未同时设置top和height属性时生效
"backButtonAutoControl": "none", //可选,字符串类型,运行环境自动处理返回键的控制逻辑,可取值none、hide、close
"additionalHttpHeaders": { //可选,JSON对象,额外添加HTTP请求头数据
}
},
"nativePlugins": { //可选,JSON数组对象,uni原生插件配置,参考:https://nativesupport.dcloud.net.cn/NativePlugin/use/use_local_plugin
"%UniPlugin-ID%": { //可选,JSON对象,键名为插件标识,值为插件配置参数
}
},
"popGesture": "none", //可选,字符串类型,窗口侧滑返回默认效果,可取值none、close、hide
"runmode": "liberate", //可选,字符串类型,应用资源运行模式,可取值normal、liberate
"safearera": { //可选,JSON对象,安全区域配置
"background": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,安全区域背景颜色
"backgroundDark": "#RRGGBB", //可选,字符串类型,#RRGGBB格式,暗黑模式安全区域背景颜色
"bottom": { //可选,JSON对象,底部安全区域配置
"offset": "none" //可选,字符串类型,安全区域偏移值,可取值auto、none
},
"left": { //可选,JSON对象,左侧安全区域配置
"offset": "none" //可选,字符串类型,安全区域偏移值,可取值auto、none
},
"right": { //可选,JSON对象,左侧安全区域配置
"offset": "none" //可选,字符串类型,安全区域偏移值,可取值auto、none
}
},
"softinput": { //可选,JSON对象,软键盘相关配置
"navBar": "auto", //可选,字符串类型,iOS平台软键盘上导航条的显示模式,可取值auto、none
"auxiliary": false, //可选,Boolean类型,是否开启辅助输入功能
"mode": "adjustResize" //可选,字符串类型,弹出系统软键盘模式,可取值adjustResize、adjustPan
},
"ssl": { //可选,JSON对象,ssl相关设置
"untrustedca": "accept" //可选,字符串类型,https请求时服务器非受信证书的处理逻辑,可取值accept、refuse、warning
},
"statusbar": { //可选,JSON对象,应用启动后的系统状态栏相关配置
"immersed": "none", //可选,字符串类型,沉浸式状态栏样式,可取值none、suggestedDevice、supportedDevice
"style": "light", //可选,字符串类型,系统状态栏样式(前景颜色),可取值dark、light
"background": "#RRGGBB" //可选,字符串类型,#RRGGBB格式,系统状态栏背景颜色
},
"useragent": { //可选,JSON对象,应用UserAgent相关配置
"value": "", //可选,字符串类型,设置的默认userAgent值
"concatenate": false //可选,Boolean类型,是否将value值作为追加值连接到系统默认userAgent值之后
},
"useragent_android": { //可选,JSON对象,Android平台应用UserAgent相关配置,优先级高于useragent配置
"value": "", //可选,字符串类型,设置的默认userAgent值
"concatenate": false //可选,Boolean类型,是否将value值作为追加值连接到系统默认userAgent值之后
},
"useragent_ios": { //可选,JSON对象,iOS平台应用UserAgent相关配置,优先级高于useragent配置
"value": "", //可选,字符串类型,设置的默认userAgent值
"concatenate": false //可选,Boolean类型,是否将value值作为追加值连接到系统默认userAgent值之后
}
},
"quickapp": {},
"mp-weixin": {
"appid": "wx开头的微信小程序appid",
"uniStatistics": {
"enable": false
}
},
"mp-baidu": {
"appid": "百度小程序appid"
},
"mp-toutiao": {
"appid": "字节跳动小程序appid"
},
"mp-lark": {
"appid": "飞书小程序appid"
},
"h5": {
"title": "演示",
"template": "index.html",
"router": {
"mode": "history",
"base": "/hello/"
},
"async": {
"loading": "AsyncLoading",
"error": "AsyncError",
"delay": 200,
"timeout": 3000
}
}
}
```
### FAQ
Q:iOS 应用调用相机等权限时,弹出的提示语如何修改?
......
......@@ -16,7 +16,7 @@
**Tips**
- `<image>` 组件默认宽度 300px、高度 225px;`app-nvue平台,暂时默认为屏幕宽度`
- `<image>` 组件默认宽度 320px、高度 240px;`app-nvue平台,暂时默认为屏幕宽度、高度 240px;`
- `src` 仅支持相对路径、绝对路径,支持 base64 码;
- 页面结构复杂,css样式太多的情况,使用 image 可能导致样式生效较慢,出现 “闪一下” 的情况,此时设置 `image{will-change: transform}` ,可优化此问题。
- 自定义组件里面使用 `<image>`时,若 `src` 使用相对路径可能出现路径查找失败的情况,故建议使用绝对路径。
......
......@@ -171,13 +171,15 @@ easyinput 组件是对原生input组件的增强 ,是专门为配合表单组
### Easyinput Events
|事件称名| 说明|返回值|
|:-:| :-:|:-:|
|@input|输入框内容发生变化时触发| -|
|@focus|输入框获得焦点时触发| -|
|@blur|输入框失去焦点时触发| -|
|@confirm|点击完成按钮时触发| -|
|@iconClick |点击图标时触发| prefix/suffix |
|事件称名| 说明|返回值|兼容说明|
|:-:| :-:|:-:|:-:|
|@input|输入框内容发生变化时触发| -||
|@clear|点击右侧叉号图标时触发| -|1.1.0新增|
|@focus|输入框获得焦点时触发| -||
|@blur|输入框失去焦点时触发| -||
|@confirm|点击完成按钮时触发| -||
|@iconClick |点击图标时触发| prefix/suffix ||
|@change|仅在输入框失去焦点或用户按下回车时触发||1.1.0新增|
## 示例
......
......@@ -10,7 +10,7 @@ uni-app的内置组件已经有了 `<form>`组件,用于提交表单内容。
然而几乎每个表单都需要做表单验证,为了方便做表单验证,减少重复开发,`uni-ui` 又基于 `<form>`组件封装了 `<uni-forms>`组件,内置了表单验证功能。
`<uni-forms>` 提供了 `rules`属性来描述校验规则、`<uni-forms-item>`子组件来包裹具体的表单项,以及给原生或三方组件提供了 `binddata()` 来设置表单值。
`<uni-forms>` 提供了 `rules`属性来描述校验规则、`<uni-forms-item>`子组件来包裹具体的表单项,以及给原生或三方组件提供了 `onFieldChange()` 来校验表单值。
每个要校验的表单项,不管input还是checkbox,都必须放在`<uni-forms-item>`组件中,且一个`<uni-forms-item>`组件只能放置一个表单项。
......@@ -22,14 +22,13 @@ uni-app的内置组件已经有了 `<form>`组件,用于提交表单内容。
::: warning 注意事项
> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。
- 组件需要依赖 `sass` 插件 ,请自行手动安装
- `resetFields` 方法不会重置原生组件和三方组件的值
- 如果配置 `validateTrigger` 属性为 `bind` 且表单域组件使用 `input` 事件触发会耗损部分性能,请谨慎使用
- 组件支持 nvue ,需要在 `manifest.json > app-plus` 节点下配置 `"nvueStyleCompiler" : "uni-app"`
- uni-forms 中不包含其他表单组件,如需使用 uni-easyinput、uni-data-checkbox 等组件,需要自行引入
- `uni-forms` 中不包含其他表单组件,如需使用 `uni-easyinput``uni-data-checkbox` 等组件,需要自行引入
- `uni-forms 1.4.0 版本` 发布,请注意文档中兼容问题说明
:::
### 基本用法
`uni-forms` 组件通常用来做表单校验和提交。每一个 `uni-forms-item` 是它的一个表单域组件,用来承载表单具体内容,`uni-forms-item` 中可以嵌套 `uni-easyinput``uni-data-checkbox`uni-app内置的表单组件 ,不过 uni-app 的内置表单组件需要通过 `binddata` 或者 `uni-forms` 提供的 `setValue` 方法,将内容与 `uni-forms` 关联,才可完成表单的校验与提交(详见后文`表单校验` 部分)
`uni-forms` 组件通常用来做表单校验和提交。每一个 `uni-forms-item` 是它的一个表单域组件,用来承载表单具体内容,`uni-forms-item` 中可以嵌套 `uni-easyinput``uni-data-checkbox``uni-app` 内置的表单组件
```html
<template>
......@@ -38,6 +37,9 @@ uni-app的内置组件已经有了 `<form>`组件,用于提交表单内容。
<uni-forms-item label="姓名" name="name">
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
</uni-forms-item>
<uni-forms-item label="年龄" name="name">
<input type="text" v-model="formData.age" placeholder="请输入年龄" />
</uni-forms-item>
<uni-forms-item required name="hobby" label="兴趣爱好">
<uni-data-checkbox multiple v-model="formData.hobby" :localdata="hobby"/>
</uni-forms-item>
......@@ -80,35 +82,40 @@ uni-app的内置组件已经有了 `<form>`组件,用于提交表单内容。
</uni-forms>
```
2. `uni-forms` 需要绑定`modelValue`属性,值为表单的key\value 组成的对象。
2. `uni-forms` 需要绑定`model`属性,值为表单的key\value 组成的对象。
```html
<!-- formData、rules 内容详见下方完整示例 -->
<uni-forms ref="form" :modelValue="formData" :rules="rules">
<uni-forms ref="form" :model="formData" :rules="rules">
...
</uni-forms>
```
3. `uni-forms-item` 需要设置 `name` 属性为当前字段名,字段为 `String` 类型而非变量
3. `uni-forms-item` 需要设置 `name` 属性为当前字段名,字段为 `String|Array` 类型
```html
<!-- formData、rules 内容详见下方完整示例 -->
<uni-forms :modelValue="formData" :rules="rules">
<uni-forms-item label="姓名" name="name">
<uni-easyinput type="text" v-model="formData.name" placeholder="请输入姓名" />
</uni-forms-item>
<uni-forms-item required name="hobby" label="兴趣爱好">
<uni-data-checkbox multiple v-model="formData.hobby" :localdata="hobby"/>
<uni-forms-item required :name="['data','hobby']" label="兴趣爱好">
<uni-data-checkbox multiple v-model="formData.data.hobby" :localdata="hobby"/>
</uni-forms-item>
</uni-forms>
```
4. 如果使用`uni-easyinput``uni-data-checkbox` 等关联组件,只需绑定 v-model,无需其他操作
5. 如果使用原生 input、checkbox 或三方组件等,只需要给组件绑定 `binddata` 方法即可触发表单校验,无需绑定事件到 `methods` 中,见下方完整示例。
4. 只要使用的组件不管内置组件还是三方组件,只需绑定 v-model,无需其他操作,即可参与校验
5. 如果使用原生 checkbox 或三方组件不支持 v-model 等,只需要给组件绑定 `binddata` 方法即可触发表单校验,无需绑定事件到 `methods` 中,见下方完整示例。
6. `binddata('name',$event.detail.value,'form')"` 方法接受三个值,
- 第一个参数传入当前表单组件所在的 name,同当前父组件 `uni-forms-item` 绑定属性 `name` 的值
- 第二个参数传入需要校验的值,内置组件可以通过 `$event.detail.value` 获取到组件的返回值,自定义组件传入需要校验的值即可
- 第三个参数传入 `uni-forms` 组件绑定属性 `ref` 的值,通常在多表单的时候需要传入,用来区分表单,如页面中仅有一个 `uni-forms` 可忽略
7. 如果内置 `binddata` 方法无法满足需求,在当前页面的 `methods` 中复写此方法即可,复写此方法需要调用 `uni-forms``setValue` 来触发表单校验,见下方 `setValue`方法说明
::: warning 注意
- uni-forms 1.4.0 版本后,binddata 方法不在推荐,请使用 uni-forms-item 上的 onFieldChange 方法代替
:::
**完整示例**
::: preview
......@@ -186,7 +193,7 @@ export default {
```
:::
::: danger 注意
::: danger 注意 (1.4.0后不在用这个限制,name 使用 array 类型可支持)
`modelValue` 对象目前有比较严格的格式要求:
- 尽量不要使用嵌套的数据结构,因为表单域指定的`name`值与 modeValue 的 key 是一一对应的,只有一种情况例外,那就是动态校验表单,见下方`动态校验表单`章节
:::
......@@ -202,7 +209,7 @@ export default {
|属性名|类型|说明|
|:-:|:-:|:-:|
|rules|Array|校验规则,见下方 `rules 属性说明`|
|validateTrigger| String| 表单校验时机|
|validateTrigger| String| 表单校验时机【1.4.0 已废弃】|
|label|String|当前表单域的字段中文名,多用于 `errorMessage` 的显示,可不填|
......@@ -246,7 +253,6 @@ rules: {
|minimum|Number|-|-| 校验最小值(小于) |
|maxLength|Number|-|-| 校验数据最大长度 |
|errorMessage|String|-|-|校验失败提示信息语,可添加属性占位符,当前表格内属性都可用作占位符|
|validateTrigger|String|bind| bind/submit|校验触发时机|
|validateFunction|Function|-|-|自定义校验规则 |
......@@ -280,13 +286,11 @@ rules: {
- callback : 校验完成时的回调,一般无需执行callback,返回true(校验通过)或者false(校验失败)即可 ,如果需要显示不同的 `errMessage`,如果校验不通过需要执行 callback('提示错误信息'),如果校验通过,执行callback()即可
> **注意**
> 需要注意,如果需要使用 `validateFunction` 自定义校验规则,则不能采用 `uni-forms` 的 `rules` 属性来配置校验规则,这时候需要通过`ref`,在`onReady`生命周期调用组件的`setRules`方法绑定验证规则
> 无法通过props传递变量,是因为微信小程序会过滤掉对象中的方法,导致自定义验证规则无效。
>
::: warning 注意
- 需要注意,如果需要使用 `validateFunction` 自定义校验规则,则不能采用 `uni-forms``rules` 属性来配置校验规则,这时候需要通过`ref`,在`onReady`生命周期调用组件的`setRules`方法绑定验证规则
- 无法通过props传递变量,是因为微信小程序会过滤掉对象中的方法,导致自定义验证规则无效。
- 如果使用了 `validateFunction``request``false`的情况,表现为不填写内容不校验,有内容才校验,所以内容为空时 `validateFunction` 不会执行
:::
```html
......@@ -416,8 +420,9 @@ export default {
### 动态表单校验
`uni-forms v1.0.44` 开始增加了动态校验表单的相关内容。
::: warning 注意
- `uni-forms 1.4.0`后更新了动态校验表单的使用方式,请与之前的版本动态表单校验方式进行区分与兼容。
:::
多用于同一个字段需要添加多次的场景,如需要动态创建多个域名参与检验。
......@@ -426,7 +431,7 @@ export default {
dynamicFormData: {
email: '',
// domains 字段下会有多个结果
domains: {}
domains: []
}
```
......@@ -439,12 +444,12 @@ dynamicFormData: {
</uni-forms-item>
```
3. `name` 需要动态指定,格式为: `字段[唯一值]`
3. `name` 需要动态指定,动态表单推荐使用 Array 类型,内容从左到右为绑定值的调用链。`['domains',index,'value']` 等同于 `dynamicFormData.domains[index].value`
```html
<uni-forms-item
required
:label="item.label+' '+index"
:name="'domains[' + item.id + ']'"
:name="['domains',index,'value']"
:rules="[{'required': true,errorMessage: '域名项必填'}]"
:key="item.id"
>
......@@ -452,7 +457,7 @@ dynamicFormData: {
</uni-forms-item>
```
4. 需要绑定值的组件的 v-model 也需要动态指定,格式为:`数据源.字段[唯一值]`
4. 需要绑定值的组件的 v-model 也需要动态指定 `dynamicFormData.domains[index].value`
```html
<uni-forms-item
required
......@@ -461,7 +466,7 @@ dynamicFormData: {
:rules="[{'required': true,errorMessage: '域名项必填'}]"
:key="item.id"
>
<uni-easyinput v-model="dynamicFormData.domains[item.id]" placeholder="请输入域名" />
<uni-easyinput v-model="dynamicFormData.domains[index].value" placeholder="请输入域名" />
</uni-forms-item>
```
......@@ -470,16 +475,16 @@ dynamicFormData: {
::: preview
> Template
```html
<uni-forms ref="dynamicForm" :rules="dynamicRules" :modelValue="dynamicFormData">
<uni-forms ref="dynamicForm" :rules="dynamicRules" :model="dynamicFormData">
<uni-forms-item label="邮箱" required name="email">
<uni-easyinput v-model="dynamicFormData.email" placeholder="请输入姓名" />
</uni-forms-item>
<template v-for="(item,index) in dynamicLists">
<template v-for="(item,index) in dynamicFormData.domains">
<uni-forms-item :label="item.label+' '+index" required
:rules="[{'required': true,errorMessage: '域名项必填'}]" :key="item.id"
:name="'domains[' + item.id + ']'">
:name="['domains',index,'value']">
<view class="form-item">
<uni-easyinput v-model="dynamicFormData.domains[item.id]" placeholder="请输入域名" />
<uni-easyinput v-model="dynamicFormData.domains[index].value" placeholder="请输入域名" />
<button class="button" size="mini" type="default" @click="del(item.id)">删除</button>
</view>
</uni-forms-item>
......@@ -500,10 +505,8 @@ export default {
// 数据源
dynamicFormData: {
email: '',
domains: {}
domains: []
},
// 动态表单数据
dynamicLists: [],
// 规则
dynamicRules: {
email: {
......@@ -521,8 +524,9 @@ export default {
methods: {
// 新增表单域
add() {
this.dynamicLists.push({
this.dynamicFormData.domains.push({
label: '域名',
value:'',
id: Date.now()
})
},
......@@ -539,31 +543,14 @@ export default {
},
}
}
// 返回值格式 ,根据自有业务,自行处理数据
{
emial:'',
domains:{
id1:'',
id2:'',
...
}
}
```
:::
::: tip 小提示
如果需要给对象赋值,需要使用 this.$set() ,将当前对象加入到可观测对象中,否则组件内无法获取正确的值
:::
### 表单校验时机说明
不管是在规则里还是`uni-forms``uni-forms-item`里,都有 `validateTrigger` 属性, `validateTrigger` 属性规定了表单校验时机,当前只有 `bind``submit` 两个值域
- `bind` : 数据绑定时触发校验,`uni-esayinput``uni-data-checkbox` 组件表现为数据发生变化时。其他内置或三方组件为 `binddata` 事件执行时机
`uni-forms 1.4.0` 后,只有 `uni-forms`上可以配置 `validateTrigger`,不在支持单独控制没个子表单的校验时机
如果需要子表单需要单独的校验时机,可以使用 `uni-forms-item``rules` 属性和 `onFieldChange` 配合
```html
<template>
......@@ -573,9 +560,9 @@ export default {
<!-- uni-easyinput 的校验时机是数据发生变化, 即触发 input 时 -->
<uni-easyinput v-model="formData.age" type="text" placeholder="请输入年龄" />
</uni-forms-item>
<uni-forms-item name="email" label="邮箱">
<!-- input 的校验时机是触发 binddata 时, 即触发 blur 时 -->
<input v-model="formData.email" @blur="binddata('email',$event.detail.value)" />
<uni-forms-item ref="input" name="email" label="邮箱">
<!-- input 的校验时机 -->
<input v-model="formData.email" @blur="(e)=>$refs.input.onFieldChange($event.detail.value)" />
</uni-forms-item>
<button class="button" @click="submit">校验表单</button>
</uni-forms>
......@@ -584,10 +571,7 @@ export default {
```
- `submit`: 只有提交表单才会触发表单校验
对于表单校验时机,同时只会有一个 `validateTrigger` 发生作用,它的作用权重为
【1.4.0后此规则已不生效】对于表单校验时机,同时只会有一个 `validateTrigger` 发生作用,它的作用权重为
**`规则 > uni-forms-item > uni-forms `**
......@@ -601,36 +585,36 @@ export default {
### Forms Props
|属性名|类型|默认值|可选值|说明|
|:-:|:-:|:-:|:-:|:-:|
|value [即将废弃]|Object|-|-| 表单数据|
|modelValue|Object|-|-| 表单数据|
|rules|Object|-|-|表单校验规则|
|validateTrigger|String|submit|bind/submit| 表单校验时机|
|label-position|String|left|top/left|label 位置|
|label-width|String/Number|75|-|label 宽度,单位 px|
|label-align|String|left| left/center/right|label 居中方式|
|err-show-type|String|undertext| undertext/toast/modal|表单错误信息提示方式|
|border|Boolean|false|-|是否显示分格线|
|属性名|类型|默认值|可选值|说明|兼容说明|
|:-:|:-:|:-:|:-:|:-:|:-:|
|model|Object|-|-|表单数据|1.4.0 新增|
|rules|Object|-|-|表单校验规则||
|validateTrigger|String|submit|bind/submit/blur| 表单校验时机,blur仅在 uni-easyinput 中生效|1.4.0 新增 blur 值|
|label-position|String|left|top/left|label 位置||
|label-width|String/Number|75|-|label 宽度,单位 px||
|label-align|String|left| left/center/right|label 居中方式||
|err-show-type|String|undertext| undertext/toast/modal|表单错误信息提示方式||
|border|Boolean|false|-|是否显示分格线||
|value|Object|-|-|表单数据,兼容vue2|即将弃用,请使用 model 代替|
|modelValue|Object|-|-| 表单数据,兼容vue3|即将弃用,请使用 model 代替|
### Forms Events
|事件称名|说明|
|:-:|:-:|
|validate|任意表单项被校验后触发,返回表单校验信息|
|@validate|任意表单项被校验后触发,返回表单校验信息|
### Forms Methods
|方法称名|说明|
|:-:| :-:|
|submit[即将废弃]| 对整个表单进行校验的方法,会返回一个 promise|
|validate|对整个表单进行校验的方法,会返回一个 promise|
|setValue|设置表单某一项 name 的对应值,通常在 uni-forms-item 和自定表单组件中使用|
|validateField|部分表单进行校验|
|clearValidate|移除表单的校验结果|
|resetFields|重置表单, 需要把 `uni-forms``modelValue`属性改为 `v-model` ,且对内置组件可能不生效|
|方法称名|说明|兼容说明|
|:-:| :-:|:-:|
|setRules|动态设置表单规则||
|validate|对整个表单进行校验的方法,会返回一个 promise||
|validateField|部分表单进行校验||
|clearValidate|移除表单的校验结果||
|submit| 对整个表单进行校验的方法,会返回一个 promise|即将弃用,请使用validate代替|
|setValue|设置表单某一项 name 的对应值,通常在 uni-forms-item 和自定表单组件中使用|即将弃用,请使用 onFieldChange 兼容相关功能|
|resetFields|重置表单, 需要把 `uni-forms``modelValue`属性改为 `v-model` ,且对内置组件可能不生效|1.4.0 已弃用|
### validate(keepItem:Array,callback:Function) 方法说明
`validate` 方法是对整个表单进行校验,方法接受两个参数
......@@ -640,7 +624,7 @@ export default {
|keepItem|Array|保留不参与校验的字段|
|callback|Function|校验完成返回函数|
校验成功后,校验对象只保留指定了`name`的字段(只要 ``uni-forms-item` 绑定了 `name`,哪怕不校验,也会返回),如果需要保留其他字段,则需要 `keepItem` 属性
校验成功后,校验对象只保留指定了`name`的字段(只要 `uni-forms-item` 绑定了 `name`,哪怕不校验,也会返回),如果需要保留其他字段,则需要 `keepItem` 属性
```html
......@@ -725,6 +709,10 @@ this.$refs.form.validate().then((res)=>{
### setValue(name:String,value:any) 方法说明
::: warning 注意
- uni-forms 1.4.0 后不在推荐使用 ,请使用 `onFieldChange` 代替
:::
`setValue` 方法通常用于内置组件或三方组件返回值的校验,因为`uni-esayinput` 等 uni 开头的组件内置了对 `uni-forms`的支持,所以这些组件返回的值可以直接使用,但是比如像`input` 这些内置组件值的变化,无法及时通知 `uni-forms` ,从而无法正常的校验,这时就需要我们手动将这些值加入到`uni-forms`的校验。
`setValue` 方法接受两个参数:
......@@ -778,6 +766,10 @@ export default {
### 其他方法说明
```javascript
// 设置规则
this.$refs.form.setRules({
//...
})
// 部分表单进行校验,接受一个参数,类型为 String 或 Array ,只校验传入 name 表单域的值
this.$refs.form.validateField(['name', 'email']).then((res)=>{
......@@ -798,32 +790,33 @@ this.$refs.form.clearValidate(['name', 'email'])
### FormsItem Props
|属性名|类型|默认值|可选值 |说明|
|:-:|:-:|:-:|:-:|:-:|
|name|String|-|-|表单域的属性名,在使用校验规则时必填|
|required|Boolean|false|-|label 右边显示红色"*"号,样式显示不会对校验规则产生效果|
|validateTrigger|String|submit|bind/submit|表单校验时机|
|left-icon|String|-|-| label左边的图标,限uni-ui的图标名称|
|icon-color|String|#606266|-| 左边通过icon配置的图标的颜色|
|label|String|-|-| 输入框左边的文字提示|
|label-width|Number|70|-| label的宽度,单位px|
|label-align|String|left|left/center/right|label的文字对齐方式|
|label-position|String|left|top/left|label的文字的位置|
|error-message|String|-|-|显示的错误提示内容,如果为空字符串或者false,则不显示错误信息|
|属性名|类型|默认值|可选值 |说明|兼容说明|
|:-:|:-:|:-:|:-:|:-:|:-:|
|name|String/Array|-|-|表单域的属性名,在使用校验规则时必填||
|rules| Object| -| -| 表单校验规则||
|required|Boolean|false|-|label 右边显示红色"*"号,样式显示不会对校验规则产生效果||
|label|String|-|-| 输入框左边的文字提示||
|label-width|Number|70|-| label的宽度,单位px||
|error-message|String|-|-|显示的错误提示内容,如果为空字符串或者false,则不显示错误信息||
|label-align|String|left|left/center/right|label的文字对齐方式||
|label-position|String|left|top/left|label的文字的位置|1.4.0已弃用 ,统一使用 uni-forms 的对齐方式|
|validateTrigger|String|submit|bind/submit|表单校验时机|1.4.0已弃用,统一使用 uni-forms 的校验时机|
|left-icon|String|-|-| label左边的图标,限uni-ui的图标名称|1.4.0已弃用 ,请使用 #label 插槽实现相关功能|
|icon-color|String|#606266|-| 左边通过icon配置的图标的颜色|1.4.0已弃用 ,请使用 #label 插槽实现相关功能|
### FormsItem Methods
|方法称名|说明|兼容说明|
|:-:| :-:|:-:|
|setRules|动态设置表单规则||
|onFieldChange|校验子表单|1.4.0新增|
### FormsItem Slots
|插槽名|说明|
|:-:| :-:|
|default|默认插槽|
|left(已经失效,请使用label代替)|label插槽,自定义label显示内容|
|label|label插槽,自定义label显示内容|
## 示例
::: warning 注意
示例依赖了 `uni-card` `uni-section` `uni-scss` 等多个组件,直接拷贝示例代码将无法正常运行 。
......
#### 3.5.0.20220623-alpha
* 【uni-app】
+ 新增 uni-app vue2项目 支持使用`@/pages.json`引用条件编译后的`pages.json`文件
+ 修复 3.4.17 版本引发的 vue3 项目 运行在小程序平台 `<script setup>`中使用 const 定义 reactive 对象访问出错的Bug [详情](https://github.com/dcloudio/uni-app/issues/3606)
+ App、Web平台 修复 3.4.10 版本引出的 vue2项目 image 组件 load 事件图像大小信息不准确的Bug [详情](https://ask.dcloud.net.cn/question/147174)
+ App平台 优化 slot name 支持动态赋值 [详情](https://ask.dcloud.net.cn/question/95109)
+ App-Android平台 新增 manifest.json 支持 webview 配置,系统 webview 低于指定版本时,弹出提示或者下载 x5 内核后继续启动 [详情](https://uniapp.dcloud.net.cn/collocation/manifest.html#appwebview)
+ App-Android平台 修复 tabbar 启用高斯模糊后获取 windowBottom 错误的Bug [详情](https://ask.dcloud.net.cn/question/146583)
+ App-iOS平台 修复 uni.request 访问特定接口可能数据解析出现乱码的Bug [详情](https://ask.dcloud.net.cn/question/145530)
+ 微信小程序、支付宝小程序 新增 vue2项目 manifest.json 支持 scopedSlotsCompiler 配置,用于合并虚拟节点外部样式 [详情](https://uniapp.dcloud.io/collocation/manifest.html#mp-weixin)
+ 百度小程序平台 修复 vue3项目 组件嵌套使用时响应式可能失效的Bug [详情](https://github.com/dcloudio/uni-app/issues/3612)
* 【uniCloud】
+ 【重要】uni-id重构。uni-id公共模块 + uni-id-cf云函数 的组合不再更新,取而代之的是 uni-id-common公共模块 + uni-id-pages云端一体模板
- 新增 uni-id-common公共模块。更小巧的公共模块,负责 uni-id 的 token 管理和权限校验 [详情](https://uniapp.dcloud.io/uniCloud/uni-id-common.html)
- 新增 uni-id-pages云端一体页面模板。包括一组前端页面 + uni-id-co云对象。包括用户注册、登录、忘记密码、个人中心等功能 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html)
+ 新增 uniIdRouter路由管理。在 pages.json 里直接定义哪些页面需要登录后才能访问 [详情](https://uniapp.dcloud.io/uniCloud/uni-id-summary.html#uni-id-router)
+ 新增 uniCloud.onNeedLogin/offNeedLogin 用于监听/移除监听需要登录事件,需搭配 `uniIdRouter` 使用 [详情](https://uniapp.dcloud.io/uniCloud/client-sdk.html#on-need-login)
+ 新增 uniCloud.onRefreshToken/offRefreshToken 用于监听/移除监听 token 更新事件 [详情](https://uniapp.dcloud.io/uniCloud/client-sdk.html#on-refresh-token)
+ 调整 HBuilderX 中创建 uniCloud 项目时默认导入 uni-id-common公共模块,不再导入老版 uni-id公共模块
+ 调整 clientDB 优先依赖 uni-id-common,在没有 uni-id-common 时依赖老版 uni-id公共模块
+ 修复 本地调试插件 HBuilderX 3.4.12引出的运行项目时部分场景下访问非关联服务空间云函数报错的Bug
+ 修复 本地调试插件 部分app平台、web平台切换云端云函数/本地云函数无效的Bug [详情](https://ask.dcloud.net.cn/question/147633)
+ 修复 clientDB action 的 after 内抛出错误不能被另一个 action 的 after 接收到的Bug [详情](https://ask.dcloud.net.cn/question/147099)
+ 修复 项目内无 uni-id 时运行 jql 文件报错的Bug
+ uniCloud控制台 新增 Redis 数据可视化管理
* 【App插件(含5+App和uni-app的App端)】
+ 【重要】uni-AD 新增 激励视频广告支持实时竞价 [详情](https://uniapp.dcloud.io/uni-ad.html#bidding)
+ Android平台 更新 云端打包环境 Gradle 为 7.3.3,Android Gradle plugin 为 4.2.0,compileSdkVersion 为 31
+ Android平台 新增 云端打包支持设置 dataBinding、viewBinding [文档](https://uniapp.dcloud.io/collocation/manifest.html#buildfeatures)
+ Android平台 修复 startBluetoothDevicesDiscovery 搜索附近蓝牙设备在 Android12 设备可能引起应用崩溃的Bug [详情](https://ask.dcloud.net.cn/question/146849)
+ Android平台 修复 UniPush 存在监听`ACTION_BOOT_COMPLETED`广播行为,可能违反应用市场上架合规检测问题 [详情](https://ask.dcloud.net.cn/question/147319)
+ Android平台 修复 UniPush 调用 plus.runtime.restart 后无法创建本地通知消息的Bug [详情](https://ask.dcloud.net.cn/question/146470)
+ Android平台 修复 从本地相册选择大图片预览时可能引起应用崩溃的Bug
+ iOS平台 更新 uni-AD 今日头条穿山甲SDK为 4.5.1.6 版
+ iOS平台 更新 百度定位SDK为 2.0.0 版,百度地图SDK为 6.5.0 版
+ iOS平台 修复 5+App项目获取5G网络类型错误的Bug
* 【Uni小程序SDK】
+ Android平台 修复 启动小程序直达页面参数与文档规范不一致的Bug
#### 3.4.17.20220614-alpha
* 【uni-app】
+ 修复 vue3 项目 onError 生命周期不生效的Bug
......@@ -903,7 +942,7 @@
+ uniCloud本地调试插件 修复 部分情况下项目启动时报 npm 安装失败的Bug
+ uni-id 新增 多系统(如管理端、用户端)的配置隔离 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=isolate-config)
+ uni-id 新增 多系统用户管理,如某账户只能登录管理端,不能登录用户端 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=isolate-user)
* 此版本升级需要开发者处理历史用户数据,请参考 [补齐用户dcloud_appid字段](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=makeup-dcloud-appid)
- 此版本升级需要开发者处理历史用户数据,请参考 [补齐用户dcloud_appid字段](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=makeup-dcloud-appid)
+ uni-id 新增 QQ登录、注册相关功能 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=qq)
+ uni-id 调整 不再支持绑定手机、邮箱时不填验证码直接绑定
* 【App插件(含5+App和uni-app的App端)】
......@@ -1078,40 +1117,40 @@
+ App-iOS平台 修复 nvue video 组件播放 mov 格式视频时显示尺寸会变小的Bug [详情](https://ask.dcloud.net.cn/question/121175)
+ H5平台 修复 3.1.0 版本引出的样式中包含媒体查询时部分 rpx 单位失效的Bug [#2600](https://github.com/dcloudio/uni-app/issues/2600)
+ uni-ui 发布新版本 1.3.1
* uni-badge 新增 uni-badge 的 absolute 属性,支持定位
* uni-badge 新增 uni-badge 的 offset 属性,支持定位偏移
* uni-badge 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点
* uni-badge 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+
* uni-badge 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式
* uni-badge 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug
* uni-badge 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug
* uni-badge 新增 uni-badge 属性 custom-style, 支持自定义样式
* uni-datetime-picker 修复 ios 下不识别 '-' 日期格式的 bug
* uni-datetime-picker 优化 pc 下弹出层添加边框和阴影
* uni-datetime-picker 修复 在 admin 中获取弹出层定位错误的bug
* uni-datetime-picker 修复 type 属性向下兼容,默认值从 date 变更为 datetime
* uni-datetime-picker 支持日历形式的日期+时间的范围选择
* uni-steps 修复 uni-steps 横向布局时,多行文字高度不合理的 bug
* uni-countdown 修复 uni-countdown 不能控制倒计时的 bug
* uni-tag 修复 royal 类型无效的bug
* uni-tag 修复 uni-tag 宽度不自适应的bug
* uni-tag 新增 uni-tag 支持属性 custom-style 自定义样式
* uni-link 新增 href 属性支持 tel:|mailto:
* uni-popup 修复 组件内放置 input 、textarea 组件,无法聚焦的问题
* uni-popup 新增 type 属性的 left\right 值,支持左右弹出
* uni-popup 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
* uni-popup 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
* uni-popup 新增 safeArea 属性,是否适配底部安全区
* uni-popup 修复 App\h5\微信小程序底部安全区占位不对的Bug
* uni-popup 修复 App 端弹出等待的Bug
* uni-popup 优化 提升低配设备性能,优化动画卡顿问题
* uni-popup 优化 更简单的组件自定义方式
* uni-table 修复 示例项目缺少组件的Bug
* uni-forms 修复 自定义检验器失效的问题
* uni-title 修复 示例项目缺少组件的Bug
* uni-transition 修复 示例项目缺少组件的Bug
* uni-swiper-dot 修复 示例项目缺少组件的Bug
* uni-ui 新增 组件示例地址
- uni-badge 新增 uni-badge 的 absolute 属性,支持定位
- uni-badge 新增 uni-badge 的 offset 属性,支持定位偏移
- uni-badge 新增 uni-badge 的 is-dot 属性,支持仅显示有一个小点
- uni-badge 新增 uni-badge 的 max-num 属性,支持自定义封顶的数字值,超过 99 显示99+
- uni-badge 优化 uni-badge 属性 custom-style, 支持以对象形式自定义样式
- uni-badge 修复 uni-badge 在 App 端,数字小于10时不是圆形的bug
- uni-badge 修复 uni-badge 在父元素不是 flex 布局时,宽度缩小的bug
- uni-badge 新增 uni-badge 属性 custom-style, 支持自定义样式
- uni-datetime-picker 修复 ios 下不识别 '-' 日期格式的 bug
- uni-datetime-picker 优化 pc 下弹出层添加边框和阴影
- uni-datetime-picker 修复 在 admin 中获取弹出层定位错误的bug
- uni-datetime-picker 修复 type 属性向下兼容,默认值从 date 变更为 datetime
- uni-datetime-picker 支持日历形式的日期+时间的范围选择
- uni-steps 修复 uni-steps 横向布局时,多行文字高度不合理的 bug
- uni-countdown 修复 uni-countdown 不能控制倒计时的 bug
- uni-tag 修复 royal 类型无效的bug
- uni-tag 修复 uni-tag 宽度不自适应的bug
- uni-tag 新增 uni-tag 支持属性 custom-style 自定义样式
- uni-link 新增 href 属性支持 tel:|mailto:
- uni-popup 修复 组件内放置 input 、textarea 组件,无法聚焦的问题
- uni-popup 新增 type 属性的 left\right 值,支持左右弹出
- uni-popup 新增 open(String:type) 方法参数 ,可以省略 type 属性 ,直接传入类型打开指定弹窗
- uni-popup 新增 backgroundColor 属性,可定义主窗口背景色,默认不显示背景色
- uni-popup 新增 safeArea 属性,是否适配底部安全区
- uni-popup 修复 App\h5\微信小程序底部安全区占位不对的Bug
- uni-popup 修复 App 端弹出等待的Bug
- uni-popup 优化 提升低配设备性能,优化动画卡顿问题
- uni-popup 优化 更简单的组件自定义方式
- uni-table 修复 示例项目缺少组件的Bug
- uni-forms 修复 自定义检验器失效的问题
- uni-title 修复 示例项目缺少组件的Bug
- uni-transition 修复 示例项目缺少组件的Bug
- uni-swiper-dot 修复 示例项目缺少组件的Bug
- uni-ui 新增 组件示例地址
* 【uniCloud】
+ 【重要】新增 uni-starter 集成商用项目开发常见功能的云端一体项目模板 [详情](https://ext.dcloud.net.cn/plugin?id=5057)
+ clientDB 修复 删除记录、统计记录数时受字段权限影响的bug [详情](https://ask.dcloud.net.cn/question/122846)
......@@ -1624,10 +1663,10 @@
+ 新增 uni-AD 编程控制开屏广告的开启或关闭 [规范](https://www.html5plus.org/doc/zh_cn/ad.html#plus.ad.setSplashAd)
+ 新增 uni-AD 激励视频、全屏视频、信息流广告支持监听点击广告事件
+ 新增 4个安全类API,推荐客户端安全要求较高的应用(如使用了激励视频),使用如下4个API并且搭配js原生混淆和App加固,防止客户端被篡改
* 新增 plus.navigator.getSignature 获取应用签名标识。可用于判断App的证书是否被重签 [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.getSignature)
* 新增 plus.navigator.isSimulator 判断App是否运行在模拟器环境 [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.isSimulator)
* 新增 plus.navigator.isRoot 判断设备是否被root [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.isRoot)
* 新增 plus.networkinfo.isSetProxy 判断设备的网络是否设置了代理 [规范](https://www.html5plus.org/doc/zh_cn/device.html#plus.networkinfo.isSetProxy)
- 新增 plus.navigator.getSignature 获取应用签名标识。可用于判断App的证书是否被重签 [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.getSignature)
- 新增 plus.navigator.isSimulator 判断App是否运行在模拟器环境 [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.isSimulator)
- 新增 plus.navigator.isRoot 判断设备是否被root [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.isRoot)
- 新增 plus.networkinfo.isSetProxy 判断设备的网络是否设置了代理 [规范](https://www.html5plus.org/doc/zh_cn/device.html#plus.networkinfo.isSetProxy)
+ 新增 QQ登录获取授权信息支持获取用户统一标识 unionid 属性 [规范](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.UserInfo)
+ 更新 uni-AD 快手联盟SDK为3.3.5版
+ Android平台 优化 应用启动时申请读写手机存储权限策略默认值为 once [详情](https://ask.dcloud.net.cn/article/36549)
......
#### 3.4.18.20220630
* 【uni-app】
+ 修复 vue3 项目 onError 生命周期不生效的Bug
+ App、Web平台 修复 vue3 项目 uni.setTabBarItem 设置 pagePath 不生效的Bug [详情](https://github.com/dcloudio/uni-app/issues/3592)
+ App、Web平台 修复 3.4.14 版本引出的 vue2项目 image 组件 load 事件图像大小信息不准确的Bug [详情](https://ask.dcloud.net.cn/question/147174)
+ App平台 优化 video 组件支持 show-mute-btn 配置
+ App平台 优化 vue3 项目 rich-text 组件支持服务端渲染
+ App平台 修复 vue3 项目 nvue 页面 onPageScroll,onReachBottom 不触发的Bug [详情](https://ask.dcloud.net.cn/question/145873)
+ App平台 修复 vue3 项目 uni.getVideoInfo 成功回调不执行Bug
+ App-Android平台 修复 nvue web-view 组件 user-agent 不正确导致加载H5页面显示异常的Bug [详情](https://ask.dcloud.net.cn/question/146877)
+ App-Android平台 修复 nvue 组件同时设置 box-shadow、elevation 样式在部分特殊场景可能会出现渲染异常的Bug [详情](https://ask.dcloud.net.cn/question/147041)
+ App-Android平台 修复 tabbar 启用高斯模糊后获取 windowBottom 错误的Bug [详情](https://ask.dcloud.net.cn/question/146583)
+ iOS平台 修复 nvue ad-content-page 组件暂停后展示其它视频类广告,关闭广告可能引起组件后台自动播放的Bug
+ Web平台 修复 vue3 项目 pc端 createSelectorQuery 获取 top 错误Bug
+ 小程序平台 修复 vue3 项目 v-for 嵌套使用 slot 时,渲染不正确的Bug [详情](https://github.com/dcloudio/uni-app/issues/3587)
+ 微信小程序平台 修复 3.4.14 版本引出的 manifest.json 文件缺少 mp-weixin 节点编译报错的Bug [详情](https://ask.dcloud.net.cn/question/146580)
+ 百度小程序平台 修复 vue3项目 组件嵌套使用时响应式可能失效的Bug [详情](https://github.com/dcloudio/uni-app/issues/3612)
* 【uniCloud】
+ 修复 本地调试插件 3.4.0版本引出的客户端连接本地云函数时获取客户端 userAgent 为`HBuilderX`的Bug
+ 修复 本地调试插件 云函数内使用`console.timeEnd`输出日志错乱的Bug
+ 修复 本地调试插件 HBuilderX 3.4.14引出的运行项目时部分场景下访问非关联服务空间云函数报错的Bug
+ 修复 项目内无 uni-id 时运行 jql 文件报错的Bug
* 【App插件(含5+App和uni-app的App端)】
+ Android平台 修复 uni-AD 开屏广告在部分小米手机可能会卡在启动界面的Bug
+ Android平台 修复 UniPush 存在监听`ACTION_BOOT_COMPLETED`广播行为,可能违反应用市场上架合规检测问题 [详情](https://ask.dcloud.net.cn/question/147319)
+ iOS平台 更新 uni-AD 快手广告SDK为 3.3.25 版,快手内容联盟SDK为 3.3.29 版,解决调用系统相册可能引起崩溃的问题
#### 3.4.15.20220610
* 【uni-app】
+ App平台 修复 3.4.14 版本引出的 scopeId 污染 slot 导致样式异常的Bug [详情](https://ask.dcloud.net.cn/question/145366)
......@@ -789,7 +816,7 @@
+ uniCloud本地调试插件 修复 部分情况下项目启动时报 npm 安装失败的Bug
+ uni-id 新增 多系统(如管理端、用户端)的配置隔离 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=isolate-config)
+ uni-id 新增 多系统用户管理,如某账户只能登录管理端,不能登录用户端 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=isolate-user)
* 此版本升级需要开发者处理历史用户数据,请参考 [补齐用户dcloud_appid字段](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=makeup-dcloud-appid)
- 此版本升级需要开发者处理历史用户数据,请参考 [补齐用户dcloud_appid字段](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=makeup-dcloud-appid)
+ uni-id 新增 QQ登录、注册相关功能 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id?id=qq)
+ uni-id 调整 不再支持绑定手机、邮箱时不填验证码直接绑定
......@@ -1394,10 +1421,10 @@
+ 新增 uni-AD 编程控制开屏广告的开启或关闭 [规范](https://www.html5plus.org/doc/zh_cn/ad.html#plus.ad.setSplashAd)
+ 新增 uni-AD 激励视频、全屏视频、信息流广告支持监听点击广告事件
+ 新增 4个安全类API,推荐客户端安全要求较高的应用(如使用了激励视频),使用如下4个API并且搭配js原生混淆和App加固,防止客户端被篡改
* 新增 plus.navigator.getSignature 获取应用签名标识。可用于判断App的证书是否被重签 [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.getSignature)
* 新增 plus.navigator.isSimulator 判断App是否运行在模拟器环境 [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.isSimulator)
* 新增 plus.navigator.isRoot 判断设备是否被root [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.isRoot)
* 新增 plus.networkinfo.isSetProxy 判断设备的网络是否设置了代理 [规范](https://www.html5plus.org/doc/zh_cn/device.html#plus.networkinfo.isSetProxy)
- 新增 plus.navigator.getSignature 获取应用签名标识。可用于判断App的证书是否被重签 [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.getSignature)
- 新增 plus.navigator.isSimulator 判断App是否运行在模拟器环境 [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.isSimulator)
- 新增 plus.navigator.isRoot 判断设备是否被root [规范](https://www.html5plus.org/doc/zh_cn/navigator.html#plus.navigator.isRoot)
- 新增 plus.networkinfo.isSetProxy 判断设备的网络是否设置了代理 [规范](https://www.html5plus.org/doc/zh_cn/device.html#plus.networkinfo.isSetProxy)
+ 新增 QQ登录获取授权信息支持获取用户统一标识 unionid 属性 [规范](https://www.html5plus.org/doc/zh_cn/oauth.html#plus.oauth.UserInfo)
+ 更新 uni-AD 快手联盟SDK为3.3.5版
+ Android平台 更新 支付宝SDK为15.8.00,解决提交 GooglePlay 审核报存在不安全的加密模式的Bug [详情](https://ask.dcloud.net.cn/question/114053)
......
......@@ -25,6 +25,100 @@
- 本地离线打包参考[Android平台UniPush模块配置](https://nativesupport.dcloud.net.cn/AppDocs/usemodule/androidModuleConfig/push)[iOS平台UniPush模块配置](https://nativesupport.dcloud.net.cn/AppDocs/usemodule/iOSModuleConfig/push)
### UniPush推送图标配置@unipush-icons
### UniPush自定义推送图标,可自定义push图标和小图标,位置如下图所示:
![](https://native-res.dcloud.net.cn/images/uniapp/push/custom_push_icon/custom_push_icon_small_instructions.png)
### 注意:需要手动在manifest.json配置 ,目前仅支持个推 & UniPush配置。
### 5+应用:
+ plus节点 --> distribute节点 --> plugins节点 --> push节点 --> igexin节点(或者unipush节点) --> icons节点 --> small节点下配置
```
"plugins": { // 第三方sdk配置
"push": { // 模块名称
"igexin": { // 个推SDK参数配置
"appid": "xxxxxxx", // 个推的appid
"appkey": "xxxxxxx", // 个推的appkey
"appsecret": "xxxxxxx", // 个推的appsecret
"icons": { // 推送图片配置
"push": { // push图标,规格与应用图片一致,不配置则默认使用push图标
"ldpi": "可选,48x48",
"mdpi": "可选,48x48",
"hdpi": "可选,72x72",
"xhdpi": "可选,96x96",
"xxhdpi": "可选,144x144",
"xxxhdpi": "可选,192x192"
},
"small": { // 小图标,png格式图片,仅使用alpha图层
"ldpi": "可选,18*18",
"mdpi": "可选,24*24",
"hdpi": "可选,36*36",
"xhdpi": "可选,48*48",
"xxhdpi": "可选,72*72"
},
"description": "推送图标"
},
}
}
}
```
### uni应用:
+ app-plus节点 --> distribute节点 --> sdkConfigs节点 --> push节点 --> igexin节点(或者unipush节点) --> icons节点 --> small节点下配置
~~~
"sdkConfigs": {
"push": {
"unipush": {
"icons": { // 推送图片配置
"push": { // push图标,规格与应用图片一致,不配置则默认使用push图标
"ldpi": "可选,48x48",
"mdpi": "可选,48x48",
"hdpi": "可选,72x72",
"xhdpi": "可选,96x96",
"xxhdpi": "可选,144x144",
"xxxhdpi": "可选,192x192"
},
"small": { // 小图标,png格式图片,仅使用alpha图层
"ldpi": "可选,18*18",
"mdpi": "可选,24*24",
"hdpi": "可选,36*36",
"xhdpi": "可选,48*48",
"xxhdpi": "可选,72*72"
},
"description": "推送图标"
},
}
}
}
~~~
### 具体配置信息说明如下:
### small图片要求
设计规范需要注意:
1. 必须是带 Alpha 透明通道的 PNG 图片。
2. 背景必须是透明的。 (如果非透明就会显示为白色方块)
![](http://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/push/unipsuh_small_icon_style.png.png)
### 使用UniPush
- **uni-app项目详细使用教程请参考 [统一推送UniPush](https://uniapp.dcloud.io/unipush)**
- **5+ App、Wap2App项目详细使用教程请参考 [UniPush使用指南](https://ask.dcloud.net.cn/article/35622)**
......
......@@ -20,13 +20,14 @@ uniCloud提供包月、按量计费两种计费方式(仅腾讯云),具体
阿里云的服务空间是纯免费的。但为避免资源滥用,有一些限制,见下。
|资源类目 |限制 |说明 |
|:-: |:-: |:-: |
|云函数并发限制 |1000个实例/服务空间|实际普通项目很难达到这个并发数,阿里云可以设置单实例多并发单实例最多100,理论最大并发量1000*100=100000 (10万),关于单实例多并发请参考:[单实例多并发](uniCloud/cf-functions.md?id=concurrency) |
|每个服务空间的云函数数量 |48个 |实际项目中由于clientDB和单路由云函数,只会用到几个云函数,达不到限制数字。[详见](https://uniapp.dcloud.net.cn/uniCloud/faq?id=merge-functions) |
|云函数定时触发最小间隔 |1小时 |- |
|云存储容量 |10GB |- |
|单次数据库执行时长限制 |1秒 |**不可申请调整** |
|资源类目 |限制 |说明 |
|:-: |:-: |:-: |
|云函数并发限制 |1000个实例/服务空间|实际普通项目很难达到这个并发数,阿里云可以设置单实例多并发单实例最多100,理论最大并发量1000*100=100000 (10万),关于单实例多并发请参考:[单实例多并发](uniCloud/cf-functions.md?id=concurrency) |
|每个服务空间的云函数数量 |48个 |实际项目中由于clientDB和单路由云函数,只会用到几个云函数,达不到限制数字。[详见](https://uniapp.dcloud.net.cn/uniCloud/faq?id=merge-functions) |
|云函数定时触发最小间隔 |1小时 |- |
|云存储容量 |10GB |- |
|云数据库容量 |100GB |- |
|单次数据库执行时长限制 |1秒 |**不可申请调整** |
尤其注意阿里云的cdn确实是全免费的,这些免费资源可用于正常公司业务,阿里云不允许开发者使用这些免费的存储及CDN资源来开展图床类业务。
......
注:本更新日志仅限uniCloud,包括uniCloud web控制台、uniCloud 云端运行环境。这些更新不跟随HBuilderX发版更新。
#### 2022-06-23
+ 【重要】uni-id重构。uni-id公共模块 + uni-id-cf云函数 的组合不再更新,取而代之的是 uni-id-common公共模块 + uni-id-pages云端一体模板
- 新增 uni-id-common公共模块。更小巧的公共模块,负责 uni-id 的 token 管理和权限校验 [详情](https://uniapp.dcloud.io/uniCloud/uni-id-common.html)
- 新增 uni-id-pages云端一体页面模板。包括一组前端页面 + uni-id-co云对象。包括用户注册、登录、忘记密码、个人中心等功能 [详情](https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html)
+ 新增 uniIdRouter路由管理。在 pages.json 里直接定义哪些页面需要登录后才能访问 [详情](https://uniapp.dcloud.io/uniCloud/uni-id-summary.html#uni-id-router)
+ 新增 uniCloud.onNeedLogin/offNeedLogin 用于监听/移除监听需要登录事件,需搭配 `uniIdRouter` 使用 [详情](https://uniapp.dcloud.io/uniCloud/client-sdk.html#on-need-login)
+ 新增 uniCloud.onRefreshToken/offRefreshToken 用于监听/移除监听 token 更新事件 [详情](https://uniapp.dcloud.io/uniCloud/client-sdk.html#on-refresh-token)
+ 调整 HBuilderX 中创建 uniCloud 项目时默认导入 uni-id-common公共模块,不再导入老版 uni-id公共模块
+ 调整 clientDB 优先依赖 uni-id-common,在没有 uni-id-common 时依赖老版 uni-id公共模块
+ 修复 本地调试插件 HBuilderX 3.4.12引出的运行项目时部分场景下访问非关联服务空间云函数报错的Bug
+ 修复 本地调试插件 部分app平台、web平台切换云端云函数/本地云函数无效的Bug [详情](https://ask.dcloud.net.cn/question/147633)
+ 修复 clientDB action 的 after 内抛出错误不能被另一个 action 的 after 接收到的Bug [详情](https://ask.dcloud.net.cn/question/147099)
+ 修复 项目内无 uni-id 时运行 jql 文件报错的Bug
+ uniCloud控制台 新增 Redis 数据可视化管理
#### 2022-06-14
+ 修复 本地调试插件 3.4.0版本引出的客户端连接本地云函数时获取客户端 userAgent 为`HBuilderX`的Bug
+ 修复 本地调试插件 云函数内使用`console.timeEnd`输出日志错乱的Bug
......
......@@ -36,7 +36,7 @@
**支付宝小程序开发工具上传文件到腾讯云时可能会返回失败,请以真机为准**
**各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。[参考](https://uniapp.dcloud.io/uniCloud/quickstart?id=%e5%b0%8f%e7%a8%8b%e5%ba%8f%e4%b8%ad%e4%bd%bf%e7%94%a8unicloud%e7%9a%84%e7%99%bd%e5%90%8d%e5%8d%95%e9%85%8d%e7%bd%ae)**
**各个小程序平台运行时,网络相关的 API 在使用前需要配置域名白名单。[参考](https://uniapp.dcloud.io/uniCloud/publish.html#useinmp)**
#### 请求参数
**Object object**
......
......@@ -9,16 +9,9 @@
### 注意:需要手动在manifest.json配置 ,目前仅支持个推 & UniPush配置。
### 5+应用:
+ plus节点 --> distribute节点 --> plugins节点 --> push节点 --> igexin节点(或者unipush节点) --> icons节点 --> small节点下配置
### uni应用:
+ app-plus节点 --> distribute节点 --> plugins节点 --> push节点 --> igexin节点(或者unipush节点) --> icons节点 --> small节点下配置
**UniPush 则把igexin节点修改为 unipush 即可**
### 具体配置信息说明如下:
```
"plugins": { // 第三方sdk配置
"push": { // 模块名称
......@@ -48,7 +41,52 @@
}
}
```
### small图片要求!!
必须是.png格式图片,要有一定的透明度。不按要求的图片无法正常使用 !!!具体[状态栏图标设计规范](https://developer.android.com/guide/practices/ui_guidelines/icon_design_status_bar)( 需要翻墙)
![](http://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/push/unipsuh_small_icon_style.png.png)
\ No newline at end of file
### uni应用:
+ app-plus节点 --> distribute节点 --> sdkConfigs节点 --> push节点 --> igexin节点(或者unipush节点) --> icons节点 --> small节点下配置
~~~
"sdkConfigs": {
"push": {
"unipush": {
"icons": { // 推送图片配置
"push": { // push图标,规格与应用图片一致,不配置则默认使用push图标
"ldpi": "可选,48x48",
"mdpi": "可选,48x48",
"hdpi": "可选,72x72",
"xhdpi": "可选,96x96",
"xxhdpi": "可选,144x144",
"xxxhdpi": "可选,192x192"
},
"small": { // 小图标,png格式图片,仅使用alpha图层
"ldpi": "可选,18*18",
"mdpi": "可选,24*24",
"hdpi": "可选,36*36",
"xhdpi": "可选,48*48",
"xxhdpi": "可选,72*72"
},
"description": "推送图标"
},
}
}
}
~~~
### 具体配置信息说明如下:
### small图片要求
设计规范需要注意:
1. 必须是带 Alpha 透明通道的 PNG 图片。
2. 背景必须是透明的。 (如果非透明就会显示为白色方块)
![](http://partner-dcloud-native.oss-cn-hangzhou.aliyuncs.com/images/uniapp/push/unipsuh_small_icon_style.png.png)
......@@ -536,7 +536,7 @@ HBuilderX3.0.7 之后,华为除了配置原有的厂商信息之外,需要
- 检查应用是否被授予推送权限:[https://ext.dcloud.net.cn/plugin?id=594](https://ext.dcloud.net.cn/plugin?id=594)
- 开启关闭推送服务:[https://ext.dcloud.net.cn/plugin?id=727](https://ext.dcloud.net.cn/plugin?id=727)
- 自定义推送铃声:[https://ext.dcloud.net.cn/plugin?id=7482](https://ext.dcloud.net.cn/plugin?id=7482)
- 如何自定义推送通知的图标:[https://uniapp.dcloud.net.cn/unipush-custom-icon.html](https://uniapp.dcloud.net.cn/unipush-custom-icon.html)
- 如何自定义推送通知的图标:[https://uniapp.dcloud.net.cn/unipush-custom-icon.html](https://uniapp.dcloud.net.cn/tutorial/app-push-unipush.html#unipush-icons)
## FAQ
- Q:5+app和wap2app需要uniPush怎么办?
......
......@@ -40,55 +40,57 @@ jest.config.js文件,为测试配置文件,详细内容如下:
```js
module.exports = {
globalTeardown: '@dcloudio/uni-automator/dist/teardown.js',
testEnvironment: '@dcloudio/uni-automator/dist/environment.js',
testEnvironmentOptions: {
compile: true,
h5: { // 为了节省测试时间,可以指定一个 H5 的 url 地址,若不指定,每次运行测试,会先 npm run dev:h5
url: "http://192.168.x.x:8080/h5/",
options: {
headless: false // 配置是否显示 puppeteer 测试窗口
}
},
"app-plus": { // 需要安装 HBuilderX
android: {
executablePath: "HBuilderX/plugins/launcher/base/android_base.apk" // apk 目录
},
ios: {
// uuid 必须配置,目前仅支持模拟器,可以(xcrun simctl list)查看要使用的模拟器 uuid
id: "",
executablePath: "HBuilderX/plugins/launcher/base/Pandora_simulator.app" // ipa 目录
}
},
"mp-weixin": {
port: 9420, // 默认 9420
account: "", // 测试账号
args: "", // 指定开发者工具参数
cwd: "", // 指定开发者工具工作目录
launch: true, // 是否主动拉起开发者工具
teardown: "disconnect", // 可选值 "disconnect"|"close" 运行测试结束后,断开开发者工具或关闭开发者工具
remote: false, // 是否真机自动化测试
executablePath: "", // 开发者工具cli路径,默认会自动查找, windows: C:/Program Files (x86)/Tencent/微信web开发者工具/cli.bat", mac: /Applications/wechatwebdevtools.app/Contents/MacOS/cli
},
"mp-baidu": {
port: 9430, // 默认 9430
args: "", // 指定开发者工具参数
cwd: "", // 指定开发者工具工作目录
launch: true, // 是否主动拉起开发者工具
teardown: "disconnect", // 可选值 "disconnect"|"close" 运行测试结束后,断开开发者工具或关闭开发者工具
remote: false, // 是否真机自动化测试
executablePath: "", // 开发者工具cli路径,默认会自动查找
}
},
testTimeout: 15000,
reporters: [
'default'
],
watchPathIgnorePatterns: ['/node_modules/', '/dist/', '/.git/'],
moduleFileExtensions: ['js', 'json'],
rootDir: __dirname,
testMatch: ['<rootDir>/src/**/*test.[jt]s?(x)'], // 测试文件目录
testPathIgnorePatterns: ['/node_modules/']
globalTeardown: '@dcloudio/uni-automator/dist/teardown.js',
testEnvironment: '@dcloudio/uni-automator/dist/environment.js',
testEnvironmentOptions: {
compile: true,
h5: { // 为了节省测试时间,可以指定一个 H5 的 url 地址,若不指定,每次运行测试,会先 npm run dev:h5
url: "http://192.168.x.x:8080/h5/",
options: {
headless: false // 配置是否显示 puppeteer 测试窗口
}
},
"app-plus": { // 需要安装 HBuilderX
android: {
appid: "", //自定义基座测试需配置manifest.json中的appid
package: "", //自定义基座测试需配置Android包名
executablePath: "HBuilderX/plugins/launcher/base/android_base.apk" // apk 目录或自定义调试基座包路径
},
ios: {
// uuid 必须配置,目前仅支持模拟器,可以(xcrun simctl list)查看要使用的模拟器 uuid
id: "",
executablePath: "HBuilderX/plugins/launcher/base/Pandora_simulator.app" // ipa 目录
}
},
"mp-weixin": {
port: 9420, // 默认 9420
account: "", // 测试账号
args: "", // 指定开发者工具参数
cwd: "", // 指定开发者工具工作目录
launch: true, // 是否主动拉起开发者工具
teardown: "disconnect", // 可选值 "disconnect"|"close" 运行测试结束后,断开开发者工具或关闭开发者工具
remote: false, // 是否真机自动化测试
executablePath: "", // 开发者工具cli路径,默认会自动查找, windows: C:/Program Files (x86)/Tencent/微信web开发者工具/cli.bat", mac: /Applications/wechatwebdevtools.app/Contents/MacOS/cli
},
"mp-baidu": {
port: 9430, // 默认 9430
args: "", // 指定开发者工具参数
cwd: "", // 指定开发者工具工作目录
launch: true, // 是否主动拉起开发者工具
teardown: "disconnect", // 可选值 "disconnect"|"close" 运行测试结束后,断开开发者工具或关闭开发者工具
remote: false, // 是否真机自动化测试
executablePath: "", // 开发者工具cli路径,默认会自动查找
}
},
testTimeout: 15000,
reporters: [
'default'
],
watchPathIgnorePatterns: ['/node_modules/', '/dist/', '/.git/'],
moduleFileExtensions: ['js', 'json'],
rootDir: __dirname,
testMatch: ['<rootDir>/src/**/*test.[jt]s?(x)'], // 测试文件目录
testPathIgnorePatterns: ['/node_modules/']
}
```
......@@ -126,6 +128,7 @@ await tag.$('.test')
3. 微信小程序暂不支持父子选择器
4. 百度小程序选择元素必须有事件的元素才能被选中,否则提示元素不存在
5. 分包中的页面,打开之后要延迟时间长一点,否则不能正确获取到页面信息
6. App-android自定义基座测试需要在`jest.config.js`文件android节点下配置appid(manifest.json中的appid)、package(包名)、executablePath(自定义调试基座包路径)
### 测试示例
......
......@@ -25,6 +25,8 @@ jest-environment-node@27.5.1
npm install @dcloudio/uni-automator --save-dev
```
3. package.json script节点新增命令
vue2项目新增如下:
```
"test:h5": "cross-env UNI_PLATFORM=h5 jest -i",
"test:android": "cross-env UNI_PLATFORM=app-plus UNI_OS_NAME=android jest -i",
......@@ -33,6 +35,15 @@ npm install @dcloudio/uni-automator --save-dev
"test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i"
```
vue3项目新增如下:
```
"test:h5": "cross-env UNI_PLATFORM=h5 jest -i",
"test:android": "cross-env UNI_PLATFORM=app UNI_OS_NAME=android jest -i",
"test:ios": "cross-env UNI_PLATFORM=app UNI_OS_NAME=ios jest -i",
"test:mp-weixin": "cross-env UNI_PLATFORM=mp-weixin jest -i",
"test:mp-baidu": "cross-env UNI_PLATFORM=mp-baidu jest -i"
```
### H5平台测试流程
1. 进入工程目录,安装依赖
......@@ -68,7 +79,7 @@ Time: 14.995s, estimated 16s
1. 配置全局 `adb` 环境变量
2. 配置 `Hbuilder` 调试基座/自定义基座 `android_base.apk` 目录,参考 `jest.config.js`
2. 配置 `Hbuilder` 调试基座/自定义基座 `android_base.apk` 目录,参考 [jest.config.js](collocation/auto/quick-start?id=jestconfigjs)
3. 创建 `cli` 工程/现有 `cli` 工程
切换到工程目录,安装依赖包 `adbkit`
......@@ -93,9 +104,9 @@ npm run test:android
npm install node-simctl --save-dev
```
2. 配置模拟器id,参考 `jest.config.js`
2. 配置模拟器id,参考 [jest.config.js](collocation/auto/quick-start?id=jestconfigjs)
3. 配置 `Hbuilder` 调试基座/自定义基座 `Pandora_simulator.app` 目录,参考 `jest.config.js`
3. 配置 `Hbuilder` 调试基座/自定义基座 `Pandora_simulator.app` 目录,参考 [jest.config.js](collocation/auto/quick-start?id=jestconfigjs)
4. 编写测试代码,参考测试用例
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册