提交 08fe2aa2 编写于 作者: Q qiang

Merge branch 'huadong-enhance-mp-externalclasses-and-vue-props' into dev

# Conflicts:
#	lerna.json
#	packages/uni-app-plus-nvue/package.json
#	packages/uni-app-plus/dist/view.umd.min.js
#	packages/uni-app-plus/package.json
#	packages/uni-cli-shared/package.json
#	packages/uni-h5-ui/package.json
#	packages/uni-h5/dist/index.umd.min.js
#	packages/uni-h5/package.json
#	packages/uni-migration/package.json
#	packages/uni-mp-alipay/package.json
#	packages/uni-mp-baidu/package.json
#	packages/uni-mp-qq/package.json
#	packages/uni-mp-toutiao/package.json
#	packages/uni-mp-weixin/package.json
#	packages/uni-quickapp-vue/package.json
#	packages/uni-stat/package.json
#	packages/uni-template-compiler/package.json
#	packages/vue-cli-plugin-hbuilderx/package.json
#	packages/vue-cli-plugin-uni-optimize/package.json
#	packages/vue-cli-plugin-uni/package.json
#	packages/webpack-uni-mp-loader/package.json
#	packages/webpack-uni-pages-loader/package.json
......@@ -43,7 +43,7 @@
<div class="barcode-img-box">
<img src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/mp-toutiao.png" width="160"/>
</div>
<b>头条小程序版</b>
<b>字节跳动小程序版</b>
</a>
<a href="//m3w.cn/uniapp" target="_blank" class="clear-style barcode-view">
<div class="barcode-img-box">
......@@ -61,7 +61,7 @@
我们精心准备了一个简单的十分钟介绍视频,方便你快速了解```uni-app```的主要特征:
<video id="video" onplay="videoPlay()" preload="none" controls="controls" width="100%" poster="https://img-cdn-qiniu.dcloud.net.cn/uniapp/doc/poster.png" src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20181126.mp4"></video>
<video id="video" onplay="videoPlay()" preload="none" controls="controls" width="100%" poster="https://img-cdn-qiniu.dcloud.net.cn/uniapp/doc/poster.png" src="https://img.cdn.aliyun.dcloud.net.cn/guide/uniapp/%E7%AC%AC1%E8%AE%B2%EF%BC%88uni-app%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D%EF%BC%89-%20DCloud%E5%AE%98%E6%96%B9%E8%A7%86%E9%A2%91%E6%95%99%E7%A8%8B@20200317.mp4"></video>
### 为什么要选择uni-app?
......
......@@ -8,7 +8,7 @@
- [微信小程序](https://developers.weixin.qq.com/miniprogram/dev/framework/)
- [支付宝小程序](https://docs.alipay.com/mini/developer/getting-started)
- [百度小程序](https://smartprogram.baidu.com/docs/develop/tutorial/codedir/)
- [头条小程序](https://developer.toutiao.com/dev/cn/mini-app/develop/component/introduction/basic-component)
- [字节跳动小程序](https://developer.toutiao.com/dev/cn/mini-app/develop/component/introduction/basic-component)
- [QQ小程序](https://q.qq.com/wiki/develop/miniprogram/frame/)
- [Weex](https://weex.apache.org/cn/guide/)
......
......@@ -47,6 +47,7 @@
* [系统信息](api/system/info.md)
* [内存](api/system/memory.md)
* [网络状态](api/system/network.md)
* [系统主题](api/system/theme.md)
* [加速度计](api/system/accelerometer.md)
* [罗盘](api/system/compass.md)
* [陀螺仪](api/system/gyroscope.md)
......
......@@ -5,7 +5,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√(2.5.11+)|x|√|x|x|x|x|
......@@ -147,9 +147,8 @@ rewardedVideoAd.onClose(res => {
```
**注意事项**
多次调用 `RewardedVideoAd.onLoad()``RewardedVideoAd.onError()``RewardedVideoAd.onClose()` 等方法监听广告事件会产生多次事件回调,建议在创建广告后监听一次即可,或者先取消原有的监听事件再重新监听。
- 多次调用 `RewardedVideoAd.onLoad()``RewardedVideoAd.onError()``RewardedVideoAd.onClose()` 等方法监听广告事件会产生多次事件回调,建议在创建广告后监听一次即可,或者先取消原有的监听事件再重新监听。
- 仅 V3 编译支持,参考 manifest.json 配置
**AD组件**
文档地址:[https://uniapp.dcloud.io/component/ad](https://uniapp.dcloud.io/component/ad)
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|x|x|x|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|x|x|x|
......
......@@ -2,7 +2,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|√|
......@@ -73,7 +73,7 @@ App-nvue下如需使用canvas,暂未封装为uni API,可参考[文档](https
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|x([CanvasContext.toTempFilePath](https://opendocs.alipay.com/mini/api/rod3ti))|√|√|√|
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......@@ -45,7 +45,7 @@ uni.chooseImage({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......@@ -87,7 +87,7 @@ uni.getSavedFileList({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|x|√|
......@@ -125,7 +125,7 @@ uni.getSavedFileInfo({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......@@ -160,7 +160,7 @@ uni.getSavedFileList({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|√|
......@@ -187,7 +187,7 @@ uni.getSavedFileList({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......
......@@ -4,5 +4,5 @@
获取全局唯一的文件管理器
- 微信小程序平台,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.getFileSystemManager.html)
- 头条小程序平台,[规范详情](https://developer.toutiao.com/dev/cn/mini-app/develop/api/file/getfilesystemmanager)
- 字节跳动小程序平台,[规范详情](https://developer.toutiao.com/dev/cn/mini-app/develop/api/file/getfilesystemmanager)
- QQ小程序平台,[规范详情](https://q.qq.com/wiki/develop/miniprogram/API/file/qq.getFileSystemManager.html)
\ No newline at end of file
......@@ -6,7 +6,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|x|√|√|
......@@ -17,7 +17,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|HBuilderX 2.2.3+|x|基础库2.7+|x|x|x|√|
......
......@@ -29,7 +29,7 @@
|onPullDownRefresh|监听用户下拉动作,一般用于下拉刷新,参考[示例](api/ui/pulldown)|||
|onReachBottom|页面滚动到底部的事件(不是scroll-view滚到底),常用于上拉加载下一页数据。如使用scroll-view导致页面级没有滚动,则触底事件不会被触发|||
|onTabItemTap|点击 tab 时触发,参数为Object,具体见下方注意事项|微信小程序、百度小程序、H5、App(自定义组件模式)||
|onShareAppMessage|用户点击右上角分享|微信小程序、百度小程序、头条小程序、支付宝小程序||
|onShareAppMessage|用户点击右上角分享|微信小程序、百度小程序、字节跳动小程序、支付宝小程序||
|onPageScroll|监听页面滚动,参数为Object|||
|onNavigationBarButtonTap|监听原生标题栏按钮点击事件,参数为Object|App、H5||
|onBackPress|监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:[onBackPress 详解](https://ask.dcloud.net.cn/article/35120)|App、H5||
......
......@@ -7,7 +7,7 @@
|参数名|类型|必填|说明|平台差异说明|
|:-|:-|:-|:-|:-:|
|type|String|否|默认为 wgs84 返回 gps 坐标,gcj02 返回国测局坐标,可用于 ``uni.openLocation`` 的坐标||
|altitude|Boolean|否|传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度|App和头条小程序不支持|
|altitude|Boolean|否|传入 true 会返回高度信息,由于获取高度需要较高精确度,会减慢接口返回速度|App和字节跳动小程序不支持|
|geocode|Boolean|否|默认false,是否解析地址信息|仅App平台支持|
|success|Function|是|接口调用成功的回调函数,返回内容详见返回参数说明。||
|fail|Function|否|接口调用失败的回调函数||
......@@ -72,7 +72,7 @@ uni.getLocation({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|x|
......
......@@ -8,9 +8,9 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|x|
|√|√|√|√|√|x|1.9.0+|
mapContext
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|x|
......@@ -46,7 +46,7 @@ uni.getLocation({
- ``<map>`` 组件默认为国测局坐标,调用 ``uni.getLocation`` 返回结果传递给 ``<map>`` 组件时,需指定 type 为 gcj02。
- App 端使用地图组件需要向高德等三方服务商申请SDK资质,获取AppKey,打包时需要在manifest的SDK配置中填写Appkey。在manifest可视化界面有详细申请指南,详见:[https://ask.dcloud.net.cn/article/29](https://ask.dcloud.net.cn/article/29)
- iOS端 如需使用第三方地图进行导航,需要在 manifest.json 文件内增加 ``urlschemewhitelist`` 节点,在线打包即可
- 不同平台打开的地图不一样,App端是高德地图(不支持百度地图)、H5端是腾讯地图、微信小程序端是腾讯地图、百度小程序是百度地图、阿里小程序是高德地图、头条小程序是高德地图。
- 不同平台打开的地图不一样,App端是高德地图(不支持百度地图)、H5端是腾讯地图、微信小程序端是腾讯地图、百度小程序是百度地图、阿里小程序是高德地图、字节跳动小程序是高德地图。
```json
{
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|x|√|√|√|
......@@ -15,7 +15,7 @@
|startTime|Number|开始播放的位置(单位:s),默认 0|否||
|autoplay|Boolean|是否自动开始播放,默认 false|否|H5端部分浏览器不支持|
|loop|Boolean|是否循环播放,默认 false|否||
|obeyMuteSwitch|Boolean|是否遵循系统静音开关,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音,默认值 true|否|微信小程序、百度小程序、头条小程序|
|obeyMuteSwitch|Boolean|是否遵循系统静音开关,当此参数为 false 时,即使用户打开了静音开关,也能继续发出声音,默认值 true|否|微信小程序、百度小程序、字节跳动小程序|
|duration|Number|当前音频的长度(单位:s),只有在当前有合法的 src 时返回|是||
|currentTime|Number|当前音频的播放位置(单位:s),只有在当前有合法的 src 时返回,时间不取整,保留小数点后 6 位|是||
|paused|Boolean|当前是是否暂停或停止状态,true 表示暂停或停止,false 表示正在播放|是||
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|x|√|√|√|
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|√|
......@@ -13,20 +13,33 @@
|方法|参数|说明|
|:-|:-|:-|
|takePhoto|Object|拍照,可指定质量,成功则返回图片路径。|
|takePhoto|Object|拍照,可指定质量,成功则返回图片路径。|
|setZoom|Object|设置缩放级别 **微信小程序 2.10.0+ 支持**|
|startRecord|Object|开始录像|
|stopRecord|Object|结束录像,成功则返回封面与视频。|
|onCameraFrame|Function|获取 Camera 实时帧数据。仅`微信小程序平台`支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/CameraContext.onCameraFrame.html)|
### cameraContext.takePhoto
**takePhoto 的 Object 参数列表:**
|参数|类型|必填|说明|
|:-|:-|:-|:-|
|quality|String|否|成像质量,值为high(高质量)、normal(普通质量)、low(低质量),默认normal|
|success|Function|否|接口调用成功的回调函数 ,返回照片文件的临时路径,res = { tempImagePath }|
|quality|String|否|成像质量,值为high(高质量)、normal(普通质量)、low(低质量),默认normal|
|success|Function|否|接口调用成功的回调函数 ,返回照片文件的临时路径,res = { tempImagePath }|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
### cameraContext.setZoom
**setZoom 的 Object 参数列表:**
|参数|类型|必填|说明|
|:-|:-|:-|:-|
|zoom|String|是|缩放级别,范围[1, maxZoom]。zoom 可取小数,精确到小数后一位。maxZoom 可在 @initdone 返回值中获取。|
|success|Function|否|接口调用成功的回调函数|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
### cameraContext.startRecord
**startRecord 的 Object 参数列表:**
|参数|类型|必填|说明|
......@@ -35,14 +48,16 @@
|success|Function|否|接口调用成功的回调函数|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
### cameraContext.stopRecord
**stopRecord 的 Object 参数列表:**
|参数|类型|必填|说明|
|:-|:-|:-|:-|
|success|Function|否|接口调用成功的回调函数 ,返回封面与视频的临时路径,res = { tempThumbPath, tempVideoPath }。|
|fail|Function|否|接口调用失败的回调函数|
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
|参数|类型|默认值|必填|说明|
|:-|:-|:-|:-|:-|
|compressed|Boolean|false|否|启动视频压缩,压缩效果同 `chooseVideo` ,**微信小程序 2.10.0+ 支持**
|success|Function||否|接口调用成功的回调函数 ,返回封面与视频的临时路径,res = { tempThumbPath, tempVideoPath }。|
|fail|Function||否|接口调用失败的回调函数|
|complete|Function||否|接口调用结束的回调函数(调用成功、失败都会执行)|
**注意**
......
......@@ -6,7 +6,7 @@ editor 组件对应的 editorContext 实例,可通过 [uni.createSelectorQuery
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|2.4.5+|√|x|x|x|x|
......
......@@ -78,14 +78,14 @@ current 为当前显示图片的链接/索引值,不填或填写的值无效
注意,当 urls 中有重复的图片链接时:
- 传链接,预览结果始终显示该链接在 urls 中第一次出现的位置。
- 传索引值,在微信/百度/头条小程序平台,会过滤掉传入的 urls 中该索引值之前与其对应图片链接重复的值。其它平台会保留原始的 urls 不会做去重处理。
- 传索引值,在微信/百度/字节跳动小程序平台,会过滤掉传入的 urls 中该索引值之前与其对应图片链接重复的值。其它平台会保留原始的 urls 不会做去重处理。
举例说明:
一组图片 `[A, B1, C, B2, D]`,其中 B1 与 B2 的图片链接是一样的。
- 传 B2 的链接,预览的结果是 B1,前一张是 A,下一张是 C。
- 传 B2 的索引值 3,预览的结果是 B2,前一张是 C,下一张是 D。此时在微信/百度/头条小程序平台,最终传入的 urls 是 `[A, C, B2, D]`,过滤掉了与 B2 重复的 B1。
- 传 B2 的索引值 3,预览的结果是 B2,前一张是 C,下一张是 D。此时在微信/百度/字节跳动小程序平台,最终传入的 urls 是 `[A, C, B2, D]`,过滤掉了与 B2 重复的 B1。
**longPressActions 参数说明**
......@@ -130,15 +130,22 @@ uni.chooseImage({
});
```
**TIPS**
- 在非H5端,previewImage是原生实现的,界面自定义灵活度较低。
- 插件市场有前端实现的previewImage,性能低于原生实现,但界面可随意定义;插件市场也有适于App端的previewImage原生插件,提供了更多功能。
### uni.getImageInfo(OBJECT)
获取图片信息。
小程序下获取网络图片信息需先配置download域名白名单才能生效。
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|√|
**OBJECT 参数说明**
......@@ -195,9 +202,9 @@ uni.chooseImage({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序
|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
**OBJECT 参数说明**
......@@ -217,6 +224,7 @@ uni.chooseImage({
**注意**
- 可以通过用户授权API来判断用户是否给应用授予相册的访问权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize)
- H5没有API可触发保存到相册行为,下载图片时浏览器会询问图片存放地址。
**示例代码:**
......@@ -241,9 +249,9 @@ uni.chooseImage({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序
|:-:|:-:|:-:|:-:|:-:|:-:|
|1.9.7+ [自定义组件编译模式](https://ask.dcloud.net.cn/article/35843)|x|√|√|√(基础库版本>=3.110.3)|√|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√(基础库版本>=3.110.3)|√|√|
**OBJECT 参数说明**
......@@ -280,7 +288,7 @@ uni.compressImage({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|x|x|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|x|x|x|
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|见下|x|√|x|√|x|√|
......@@ -52,7 +52,7 @@ App平台的直播播放,不使用此API,而直接使用video的API。
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|见下|x|√|x|x|x|√|
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|见下|x|√|x|x|x|
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|x|√|√|√|
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|基础库版本>=1.10.0|√|√|√|
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|√|
......@@ -12,7 +12,7 @@
|参数名|类型|必填|说明|平台差异说明|
|:-|:-|:-|:-|:-|
|sourceType|Array&lt;String&gt;|否|album 从相册选视频,camera 使用相机拍摄,默认为:['album', 'camera']||
|compressed|Boolean|否|是否压缩所选的视频源文件,默认值为 true,需要压缩。|微信小程序、百度小程序、头条小程序|
|compressed|Boolean|否|是否压缩所选的视频源文件,默认值为 true,需要压缩。|微信小程序、百度小程序、字节跳动小程序|
|maxDuration|Number|否|拍摄视频最长拍摄时间,单位秒。最长支持 60 秒。|APP平台 1.9.7+(iOS支持,Android取决于ROM的拍照组件是否实现此功能,如果没实现此功能则忽略此属性。) 微信小程序、百度小程序|
|camera|String|否|'front'、'back',默认'back'|APP、微信小程序|
|success|Function|否|接口调用成功,返回视频文件的临时文件路径,详见返回参数说明。||
......@@ -73,7 +73,7 @@ export default {
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......
......@@ -8,5 +8,5 @@
- 微信小程序:[规范文档](https://developers.weixin.qq.com/miniprogram/dev/api/wx.createRewardedVideoAd.html)
- 百度小程序:有组件但无API
- 支付宝小程序:不支持此能力
- 头条小程序:仅小游戏可用,小程序不可用,不适用于uni-app
- 字节跳动小程序:仅小游戏可用,小程序不可用,不适用于uni-app
- QQ小程序:[规范文档](https://q.qq.com/wiki/develop/miniprogram/API/ad/qq.createRewardedVideoAd.html)
\ No newline at end of file
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|√|√|
......@@ -28,7 +28,7 @@
|scope.userLocationBackground|wx.userLocationBackground|后台定位|微信小程序|
|scope.address |[uni.chooseAddress](/api/other/choose-address) |通信地址||
|scope.record |[uni.getRecorderManager](/api/media/record-manager?id=getrecordermanager) |录音功能||
|scope.writePhotosAlbum |[uni.saveImageToPhotosAlbum](/api/media/image?id=saveimagetophotosalbum), [uni.saveVideoToPhotosAlbum](/api/media/video?id=savevideotophotosalbum) |保存到相册|头条小程序的返回值是scope.album|
|scope.writePhotosAlbum |[uni.saveImageToPhotosAlbum](/api/media/image?id=saveimagetophotosalbum), [uni.saveVideoToPhotosAlbum](/api/media/video?id=savevideotophotosalbum) |保存到相册|字节跳动小程序的返回值是scope.album|
|scope.camera |[``<camera />``](/component/camera) 组件,头条下的扫码、拍照、选择相册 |摄像头 ||
|scope.invoice |[wx.chooseInvoice](https://developers.weixin.qq.com/miniprogram/dev/api/wx.chooseInvoice.html) |获取发票|微信小程序、QQ小程序|
|scope.invoiceTitle|[uni.chooseInvoiceTitle](/api/other/invoice-title) |发票抬头|微信小程序、百度小程序、QQ小程序|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|√|√|x|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|√|x|
......@@ -45,7 +45,7 @@ if (uni.getExtConfig) {
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|√|x|
......
......@@ -5,7 +5,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|√|
......
......@@ -6,7 +6,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|x|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|[微信小程序](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/miniprogram-navigate/wx.navigateToMiniProgram.html)|[支付宝小程序](https://docs.alipay.com/mini/api/open-miniprogram)|[百度小程序](https://smartprogram.baidu.com/docs/develop/api/open_smartprogram/#swan-navigateToSmartProgram/)|[头条小程序](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/mini-app-forward/navigatetominiprogram)|[QQ小程序](https://q.qq.com/wiki/develop/miniprogram/API/open_port/port_change.html#qq-navigatetominiprogram)|
|App|H5|[微信小程序](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/miniprogram-navigate/wx.navigateToMiniProgram.html)|[支付宝小程序](https://docs.alipay.com/mini/api/open-miniprogram)|[百度小程序](https://smartprogram.baidu.com/docs/develop/api/open_smartprogram/#swan-navigateToSmartProgram/)|[字节跳动小程序](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/mini-app-forward/navigatetominiprogram)|[QQ小程序](https://q.qq.com/wiki/develop/miniprogram/API/open_port/port_change.html#qq-navigatetominiprogram)|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x(见下)|x|√|√|√|√(1.15.0+)|√|
......@@ -46,7 +46,7 @@ uni.navigateToMiniProgram({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|√|√|√|
......
......@@ -92,7 +92,7 @@ uni.report('search',{
##### 百度小程序平台:
- 数据分析:[swan.reportAnalytics](https://smartprogram.baidu.com/docs/develop/api/data/#swan-reportAnalytics/)
##### 头条小程序平台:
##### 字节跳动小程序平台:
- [reportAnalytics](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/data-analysis/reportanalytics)
##### QQ小程序平台:
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5 |微信小程序 |支付宝小程序 |百度小程序 |头条小程序 |QQ小程序 |
|App|H5 |微信小程序 |支付宝小程序 |百度小程序 |字节跳动小程序 |QQ小程序 |
|:-: |:-:|:-: |:-: |:-: |:-: |:-: |
|x |x |基础库版本>=2.8.2|x |x |x |x |
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|√|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|√|√|√|
......@@ -35,15 +35,16 @@ uni.openSetting({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|√|√|√|
|属性|类型|必填|说明|
|属性|类型|默认值|必填|说明|
|---|---|---|---|---|
|success|function|否|接口调用成功的回调函数|
|fail|function|否|接口调用失败的回调函数|
|complete|function|否|接口调用结束的回调函数(调用成功、失败都会执行)|
|withSubscriptions|Boolean|false |否|是否同时获取用户订阅消息的订阅状态,默认不获取。注意:withSubscriptions 只返回用户勾选过订阅面板中的“总是保持以上选择,不再询问”的订阅消息。 **(微信小程序 2.10.1 支持)**|
|success|function||否|接口调用成功的回调函数|
|fail|function||否|接口调用失败的回调函数|
|complete|function||否|接口调用结束的回调函数(调用成功、失败都会执行)|
**success 返回参数**
......@@ -51,6 +52,7 @@ uni.openSetting({
|属性|类型|说明|
|---|---|---|
|authSetting|Object|用户授权结果,其中 key 为 [scope](/api/other/authorize?id=scope-列表) 值,value 为 Boolean 值,表示用户是否允许授权|
|subscriptionsSetting|SubscriptionsSetting|用户订阅消息设置,接口参数`withSubscriptions`值为`true`时才会返回。**(微信小程序 2.10.1 支持)**|
#### 示例代码
```js
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|x|
......@@ -66,7 +66,7 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/templateadd?access_tok
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|x|
......@@ -120,7 +120,7 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/templatedel?access_tok
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|x|
......@@ -229,7 +229,7 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/libraryget?access_toke
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|x|
......@@ -318,7 +318,7 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/librarylist?access_tok
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|x|
......@@ -416,7 +416,7 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/templatelist?access_to
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|x|
......@@ -549,7 +549,7 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/templatedel?access_tok
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|x|√|x|x|x|
......
......@@ -8,7 +8,7 @@ App的更新不使用本API,另见文档:
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|√|√|√|
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......@@ -35,7 +35,7 @@ H5平台登陆注意事项:
* [微信小程序登录](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html)
* [支付宝小程序用户授权](https://docs.alipay.com/mini/introduce/authcode)
* [百度小程序登录](https://smartprogram.baidu.com/docs/develop/api/open_log/#%E6%8E%88%E6%9D%83%E6%B5%81%E7%A8%8B%E8%AF%B4%E6%98%8E/)
* [头条小程序登录](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/log-in/login)
* [字节跳动小程序登录](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/log-in/login)
* [Apple登录、苹果登录、Sign in with Apple](https://ask.dcloud.net.cn/article/36651)
......@@ -58,7 +58,7 @@ uni.login({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|√|√|
......@@ -75,7 +75,7 @@ uni.login({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......@@ -86,7 +86,7 @@ uni.login({
|参数名|类型|必填|说明|平台差异说明|
|:-|:-|:-|:-|:-|:-|
|provider|String|否|登录服务提供商,通过 uni.getProvider 获取||
|withCredentials|Boolean|否|是否带上登录态信息。|微信小程序、头条小程序|
|withCredentials|Boolean|否|是否带上登录态信息。|微信小程序、字节跳动小程序|
|lang|String|否|指定返回用户信息的语言,默认为 en。更多值请参考下面的说明。|微信小程序|
|timeout|Number|否|超时时间,单位 ms。|微信小程序|
|success|Function|否|接口调用成功的回调||
......@@ -109,9 +109,9 @@ uni.login({
|:-|:-|:-||
|userInfo|OBJECT|用户信息对象||
|rawData|String|不包括敏感信息的原始数据字符串,用于计算签名。||
|signature|String|使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息。|微信小程序、头条小程序|
|encryptedData|String|包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法。|微信小程序、头条小程序|
|iv|String|加密算法的初始向量,详细见加密数据解密算法。|微信小程序、头条小程序|
|signature|String|使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息。|微信小程序、字节跳动小程序|
|encryptedData|String|包括敏感数据在内的完整用户信息的加密数据,详细见加密数据解密算法。|微信小程序、字节跳动小程序|
|iv|String|加密算法的初始向量,详细见加密数据解密算法。|微信小程序、字节跳动小程序|
|errMsg|String|描述信息|&nbsp;|
**userInfo 参数说明**
......
......@@ -11,7 +11,7 @@ uni.requestPayment是一个统一各平台的客户端支付API,不管是在
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|[说明](/api/plugins/payment?id=h5-payment)|√|√|√|√|√|
......@@ -20,29 +20,29 @@ uni.requestPayment是一个统一各平台的客户端支付API,不管是在
|参数名|类型|必填|说明|平台差异说明|
|:-|:-|:-|:-||
|provider|String|是|服务提供商,通过 [uni.getProvider](/api/plugins/provider) 获取。||
|orderInfo|String/Object|是|订单数据,[注意事项](/api/plugins/payment?id=orderinfo)|App、支付宝小程序、百度小程序、头条小程序|
|orderInfo|String/Object|是|订单数据,[注意事项](/api/plugins/payment?id=orderinfo)|App、支付宝小程序、百度小程序、字节跳动小程序|
|timeStamp|String|微信小程序必填|时间戳从1970年1月1日至今的秒数,即当前的时间。|微信小程序|
|nonceStr|String|微信小程序必填|随机字符串,长度为32个字符以下。|微信小程序|
|package|String|微信小程序必填|统一下单接口返回的 prepay_id 参数值,提交格式如:prepay_id=xx。|微信小程序|
|signType|String|微信小程序必填|签名算法,暂支持 MD5。|微信小程序|
|paySign|String|微信小程序必填|签名,具体签名方案参见 [微信小程序支付文档](https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7&index=3)|微信小程序|
|bannedChannels|Array&lt;String&gt;|否|需要隐藏的支付方式,详见 [百度小程序支付文档](https://smartprogram.baidu.com/docs/develop/api/open_payment/#requestPolymerPayment/)|百度小程序|
|service|Number|头条小程序必填|固定值:1(拉起小程序收银台)开发者如果不希望使用头条小程序收银台,service设置为3/4时,可以直接拉起微信/支付宝进行支付:service=3: 微信API支付,不拉起小程序收银台;service=4: 支付宝API支付,不拉起小程序收银台。其中service=3、4,仅在1.35.0.1+基础库(头条743+)支持|头条小程序|
|_debug|Number|否|仅限调试用,上线前去掉该参数。_debug=1时,微信支付期间可以看到中间报错信息,方便调试|头条小程序|
|getOrderStatus|Function|头条小程序必填|商户前端实现的查询支付订单状态方法(该方法需要返回个Promise对象)。 service=3、4时不需要传。|头条小程序|
|service|Number|字节跳动小程序必填|固定值:1(拉起小程序收银台)开发者如果不希望使用字节跳动小程序收银台,service设置为3/4时,可以直接拉起微信/支付宝进行支付:service=3: 微信API支付,不拉起小程序收银台;service=4: 支付宝API支付,不拉起小程序收银台。其中service=3、4,仅在1.35.0.1+基础库(头条743+)支持|字节跳动小程序|
|_debug|Number|否|仅限调试用,上线前去掉该参数。_debug=1时,微信支付期间可以看到中间报错信息,方便调试|字节跳动小程序|
|getOrderStatus|Function|字节跳动小程序必填|商户前端实现的查询支付订单状态方法(该方法需要返回个Promise对象)。 service=3、4时不需要传。|字节跳动小程序|
|success|Function|否|接口调用成功的回调||
|fail|Function|否|接口调用失败的回调函数||
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|&nbsp;|
#### 注意事项
- 头条小程序支付接口调整使用时请注意[发起头条支付](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/payment/pay)
- 字节跳动小程序支付接口调整使用时请注意[发起头条支付](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/payment/pay)
#### orderInfo 注意事项@orderInfo
1. 百度小程序的 orderInfo 为 Object 类型,详细的数据结构,参考:[百度收银台支付](https://smartprogram.baidu.com/docs/develop/api/open_payment/#requestPolymerPayment/)
2. 支付宝小程序的 orderInfo(支付宝的规范为 tradeNO) 为 String 类型,表示支付宝交易号。
3. 头条小程序的 orderInfo 为 Object 类型,详见:[发起头条支付](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/payment/pay)
4. 由于头条新版支付接口要求版本较高,在不支持新版支付接口的情况下仍会对应旧版支付接口,此时 orderInfo 对应头条小程序 data, 详见:[头条支付旧版接口](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/payment/requestpayment-deprecated)。用户可以使用 tt.pay 判断是否支持新版接口。另外需要注意头条小程序在`1.35.0+`版本基础库支持了 canIUse ,在`1.19.4+`版本基础库支持了新版支付接口 tt.pay ,所以应避免使用 canIUse 判断是否为新版接口。
3. 字节跳动小程序的 orderInfo 为 Object 类型,详见:[发起头条支付](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/payment/pay)
4. 由于头条新版支付接口要求版本较高,在不支持新版支付接口的情况下仍会对应旧版支付接口,此时 orderInfo 对应字节跳动小程序 data, 详见:[头条支付旧版接口](https://developer.toutiao.com/dev/cn/mini-app/develop/open-capacity/payment/requestpayment-deprecated)。用户可以使用 tt.pay 判断是否支持新版接口。另外需要注意字节跳动小程序在`1.35.0+`版本基础库支持了 canIUse ,在`1.19.4+`版本基础库支持了新版支付接口 tt.pay ,所以应避免使用 canIUse 判断是否为新版接口。
5. App端,支付宝支付和微信支付 orderInfo 均为 String 类型。
6. App端,苹果应用内支付 orderInfo 为Object 类型,{productid: 'productid'}。
......
......@@ -7,7 +7,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-|:-|:-|:-|:-|:-|:-|
|√|x|√|√|√|√|√|
......
......@@ -16,7 +16,7 @@ uni-app的App引擎已经封装了微信、QQ、微博的分享SDK,开发者
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|x|x|x|x|x|
......@@ -258,46 +258,46 @@ uni.share({
- Q:弹出分享菜单,是否有已经写好的插件?
- A:插件市场有很多封装好的分享菜单插件,[底部图标菜单](https://ext.dcloud.net.cn/search?q=%E5%BA%95%E9%83%A8%E5%9B%BE%E6%A0%87%E8%8F%9C%E5%8D%95),可直接弹出菜单,并且没有遮挡层级问题,推荐使用。
### uni.shareWithSystem(OBJECT)
调用系统分享组件发送分享消息,不需要配置分享SDK
### uni.shareWithSystem(OBJECT)
调用系统分享组件发送分享消息,不需要配置分享SDK
**平台差异说明**
|App |H5 |微信小程序 |支付宝小程序 |百度小程序 |头条小程序 |QQ小程序 |
|App |H5 |微信小程序 |支付宝小程序 |百度小程序 |字节跳动小程序 |QQ小程序 |
|:-: |:-:|:-: |:-: |:-: |:-: |:-: |
|√(App 2.6.4+) |x |x |x |x |x |x |
|√(App 2.6.4+) |x |x |x |x |x |x |
**OBJECT 参数说明**
|参数名 |类型 |必填 |说明 |
|:- |:- |:- |:- |
|type |String |- |分享类型,只支持text,image,默认为text|
|summary |String |- |分享的文字内容 |
|href |String |- |分享链接,ios端分享到微信时必填此字段 |
|imageUrl |String |- |分享图片,仅支持本地路径 |
**注意事项**
- Android端当msg参数中设置图片(`imageUrl`属性)时,分享类型自动变为为`image`,在分享时可能只会发送图片(如微信);没有设置图片时分享类型则认为是文本`text`
- iOS端不同的分享程序对分享内容有要求,如微信分享时必需添加链接地址`href`,否则微信分享失败。 注:iOS8.0及以上系统触发成功回调则表示发送消息成功。
**示例代码**
```javascript
uni.shareWithSystem({
summary: '',
href: 'https://uniapp.dcloud.io',
success(){
// 分享完成,请注意此时不一定是成功分享
},
fail(){
// 分享失败
}
})
```
|:- |:- |:- |:- |
|type |String |- |分享类型,只支持text,image,默认为text|
|summary |String |- |分享的文字内容 |
|href |String |- |分享链接,ios端分享到微信时必填此字段 |
|imageUrl |String |- |分享图片,仅支持本地路径 |
**注意事项**
- Android端当msg参数中设置图片(`imageUrl`属性)时,分享类型自动变为为`image`,在分享时可能只会发送图片(如微信);没有设置图片时分享类型则认为是文本`text`
- iOS端不同的分享程序对分享内容有要求,如微信分享时必需添加链接地址`href`,否则微信分享失败。 注:iOS8.0及以上系统触发成功回调则表示发送消息成功。
**示例代码**
```javascript
uni.shareWithSystem({
summary: '',
href: 'https://uniapp.dcloud.io',
success(){
// 分享完成,请注意此时不一定是成功分享
},
fail(){
// 分享失败
}
})
```
### plus.share.sendWithSystem(msg, successCB, errorCB)
......@@ -309,7 +309,7 @@ App端可调用手机的系统分享,实现所有注册分享的应用的呼
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|x|x|x|x|x|
......@@ -325,7 +325,7 @@ App端可调用手机的系统分享,实现所有注册分享的应用的呼
**msg参数说明**
|参数|类型|说明|
|:-|:-|:-|
|:-|:-|:-|
|type|String|分享类型,仅支持text、image|
|content|String|分享消息的文字内容|
|pictures|Array[ String ]|分享消息中包含的图片路径,仅支持本地路径。 若分享平台仅支持提交一张图片,传入多张图片则仅提交第一张图片。 如果未指定type类型,优先级顺序为:pictures>content(即设置了pictures则认为分享图片类型)。|
......@@ -356,7 +356,7 @@ App端可调用手机的系统分享,实现所有注册分享的应用的呼
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|√|√|
......@@ -375,10 +375,10 @@ App端可调用手机的系统分享,实现所有注册分享的应用的呼
|path |String |是 |页面 path ,必须是以 / 开头的完整路径。 |QQ小程序不支持 |
|imageUrl |String |否 |分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径。支持PNG及JPG。显示图片长宽比是 5:4 | |
|content |String |否 |百度小程序表现为:分享内容;支付宝小程序表现为:吱口令文案 |百度小程序、支付宝小程序 |
|desc |String |否 |自定义分享描述 |支付宝小程序、头条小程序 |
|desc |String |否 |自定义分享描述 |支付宝小程序、字节跳动小程序 |
|bgImgUrl |String |否 |自定义分享二维码的背景图,建议大小750*950(网络图片路径) |支付宝小程序 |
|query |String |否 |QQ小程序查询字符串,必须是 key1=val1&key2=val2 的格式。从这条转发消息进入后,可通过 qq.getLaunchOptionSync() 或 qq.onShow() 获取启动参数中的 query。 |QQ小程序 |
|templateId |String |否 |开发者后台设置的分享素材模板 id |头条小程序 |
|query |String |否 |QQ小程序查询字符串,必须是 key1=val1&key2=val2 的格式。从这条转发消息进入后,可通过 qq.getLaunchOptionSync() 或 qq.onShow() 获取启动参数中的 query。 |QQ小程序 |
|templateId |String |否 |开发者后台设置的分享素材模板 id |字节跳动小程序 |
|success |Function |否 |接口调用成功的回调函数 |支付宝小程序、百度小程序 |
|fail |Function |否 |接口调用失败的回调函数 |支付宝小程序、百度小程序 |
|complete |Function |否 |接口调用结束的回调函数(调用成功、失败都会执行) |百度小程序 |
......@@ -403,13 +403,13 @@ export default {
* 微信、头条平台:只有定义了此事件处理函数,小程序右上角菜单才会显示“转发”按钮
* QQ小程序还支持通过[qq.offShareAppMessage](https://q.qq.com/wiki/develop/game/API/share/qq.offShareAppMessage.html)取消对系统分享按钮的监听。
### uni.showShareMenu(OBJECT)
### uni.showShareMenu(OBJECT)
小程序的原生菜单中显示分享按钮
**平台差异说明**
|App|H5 |微信小程序 |支付宝小程序 |百度小程序 |头条小程序 |QQ小程序 |
|App|H5 |微信小程序 |支付宝小程序 |百度小程序 |字节跳动小程序 |QQ小程序 |
|:-:|:-:|:-: |:-: |:-: |:-: |:-: |
|x |x |√ |√ |√ |√ |√ |
......@@ -429,7 +429,7 @@ export default {
**平台差异说明**
|App|H5 |微信小程序 |支付宝小程序 |百度小程序 |头条小程序 |
|App|H5 |微信小程序 |支付宝小程序 |百度小程序 |字节跳动小程序 |
|:-:|:-:|:-: |:-: |:-: |:-: |
|x |x |√ |√(1.17.0+) |x |√ |
......
......@@ -9,9 +9,9 @@
|:-|:-|:-|:-|:-|:-|
|url|String|是||开发者服务器接口地址||
|data|Object/String/ArrayBuffer|否||请求的参数|App(自定义组件编译模式)不支持ArrayBuffer类型|
|header|Object|否||设置请求的 header,header 中不能设置 Referer。||
|header|Object|否||设置请求的 header,header 中不能设置 Referer。|H5端会自动带上cookie不可手动覆盖|
|method|String|否|GET|有效值详见下方说明||
|timeout|Number|否|30000|超时时间,单位 ms|支付宝小程序|
|timeout|Number|否|30000|超时时间,单位 ms|微信小程序(2.10.0)、支付宝小程序|
|dataType|String|否|json |如果设为 json,会尝试对返回的数据做一次 JSON.parse||
|responseType|String|否|text |设置响应的数据类型。合法值:text、arraybuffer|App和支付宝小程序不支持|
|sslVerify|Boolean|否|true|验证 ssl 证书|仅App安卓端支持(HBuilderX 2.3.3+)|
......@@ -24,7 +24,7 @@
必须大写,有效值在不同平台差异说明不同。
|method|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|method|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|GET|√|√|√|√|√|√|
|POST|√|√|√|√|√|√|
......@@ -117,8 +117,9 @@ requestTask.abort();
- 网络请求的 ``超时时间`` 可以统一在 ``manifest.json`` 中配置 [networkTimeout](/collocation/manifest?id=networktimeout)
- H5 端本地调试需注意跨域问题,参考:[调试跨域问题解决方案](https://ask.dcloud.net.cn/article/35267)
- 注意由于百度小程序iOS客户端,请求失败时会进入fail回调,需要针对百度增加相应的处理以解决该问题。
- 注意非 H5 端不支持 cookie,服务器应避免验证 cookie。如果服务器无法修改,也可以使用一些模拟手段,比如这样的工具[https://github.com/charleslo1/weapp-cookie](https://github.com/charleslo1/weapp-cookie)
- 按照 W3C 规范,H5 端无法获取 response header 中 Set-Cookie、Set-Cookie2 这2个字段,对于跨域请求,允许获取的 response header 字段只限于“simple response header”和“Access-Control-Expose-Headers”([详情](https://www.w3.org/TR/cors/#access-control-allow-credentials-response-header)
- 注意非 H5 端不支持自动保持 cookie,服务器应避免验证 cookie。如果服务器无法修改,也可以使用一些模拟手段,比如这样的工具[https://github.com/charleslo1/weapp-cookie](https://github.com/charleslo1/weapp-cookie) 可以请求时带上 cookie 并将响应的 cookie 保存在本地。
- H5端 cookie 受跨域限制(和平时开发网站时一样),但 uni.request 目前未支持 withCredentials 配置,可以直接使用 xhr 对象或者其他类库。
- 根据 W3C 规范,H5 端无法获取 response header 中 Set-Cookie、Set-Cookie2 这2个字段,对于跨域请求,允许获取的 response header 字段只限于“simple response header”和“Access-Control-Expose-Headers”([详情](https://www.w3.org/TR/cors/#access-control-allow-credentials-response-header)
- [uni-app 插件市场](https://ext.dcloud.net.cn/search?q=%E6%8B%A6%E6%88%AA%E5%99%A8)有flyio、axios等三方封装的拦截器可用
- 低版本手机自身不支持 ipv6,如果服务器仅允许 ipv6,会导致老手机无法正常运行或访问速度非常慢
- localhost、127.0.0.1等服务器地址,只能在电脑端运行,手机端连接时不能访问。请使用标准IP并保证手机能连接电脑网络
......
......@@ -2,7 +2,7 @@
**平台差异说明**
支付宝小程序、头条小程序,没有明确的文档来具体说明这个对象,而是指向了 [Web Websocket](https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket) 对象。
支付宝小程序、字节跳动小程序,没有明确的文档来具体说明这个对象,而是指向了 [Web Websocket](https://developer.mozilla.org/zh-CN/docs/Web/API/WebSocket) 对象。
### SocketTask.onMessage(CALLBACK)
监听 WebSocket 接受到服务器的消息事件
......
......@@ -10,7 +10,7 @@
|url|String|是|服务器接口地址|小程序中必须是 `wss://` 协议|
|header|Object|否|HTTP Header , header 中不能设置 Referer|小程序|
|method|String|否|默认是GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT|微信小程序|
|protocols|Array&lt;String&gt;|否|子协议数组|H5、微信小程序、百度小程序、头条小程序|
|protocols|Array&lt;String&gt;|否|子协议数组|H5、微信小程序、百度小程序、字节跳动小程序|
|success|Function|否|接口调用成功的回调函数||
|fail|Function|否|接口调用失败的回调函数||
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|&nbsp;|
......
......@@ -100,6 +100,10 @@ export default {
}
```
Tips:
* H5端调用`uni.reLaunch`之后之前页面栈会销毁,但是无法清空浏览器之前的历史记录,此时`navigateBack`不能返回,如果存在历史记录的话点击浏览器的返回按钮或者调用`history.back()`仍然可以导航到浏览器的其他历史记录。
#### uni.switchTab(OBJECT)
跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面。
......@@ -175,7 +179,7 @@ Tips:
* ``reLaunch`` 可以打开任意页面。
* 页面底部的 ``tabBar`` 由页面决定,即只要是定义为 ``tabBar`` 的页面,底部都有 ``tabBar``
* 不能在 ```App.vue``` 里面进行页面跳转。
* H5端页面刷新之后页面栈会消失,此时`navigateBack`不能返回,如果一定要返回可以使用`history.back()`
* H5端页面刷新之后页面栈会消失,此时`navigateBack`不能返回,如果一定要返回可以使用`history.back()`导航到浏览器的其他历史记录
**参考事项**
- 页面路由拦截和管理,插件市场有很多封装好的工具类,搜索[路由](https://ext.dcloud.net.cn/search?q=%E8%B7%AF%E7%94%B1)
......
......@@ -223,8 +223,10 @@ uni-app的Storage在不同端的实现不同:
- 各个小程序端为其自带的storage api,数据存储生命周期跟小程序本身一致,即除用户主动删除或超过一定时间被自动清理,否则数据都一直可用。
- 微信小程序单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB。
- 支付宝小程序单条数据转换成字符串后,字符串长度最大200*1024。同一个支付宝用户,同一个小程序缓存总上限为10MB。
- 百度、头条小程序文档未说明大小限制
- 百度、字节跳动小程序文档未说明大小限制
除此之外,其他数据存储方案:
- H5端还支持websql、indexedDB、sessionStorage
- App端还支持[SQLite](https://www.html5plus.org/doc/zh_cn/sqlite.html)[IO文件](https://www.html5plus.org/doc/zh_cn/io.html)等本地存储方案。
从HBuilderX2.6.6+起,App-Android平台对本地storage数据存储进行了性能优化,它的具体优化方式和升级注意事项,详见:[https://ask.dcloud.net.cn/article/37071](https://ask.dcloud.net.cn/article/37071)
......@@ -28,7 +28,7 @@ uni.onAccelerometerChange(function (res) {
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|x|√|√|
......
......@@ -8,7 +8,7 @@
**平台差异说明**
|App|H5 |微信小程序 |支付宝小程序 |百度小程序 |头条小程序 |QQ小程序 |
|App|H5 |微信小程序 |支付宝小程序 |百度小程序 |字节跳动小程序 |QQ小程序 |
|:- |:- |:- |:- |:- |:- |:- |
|√(2.3.8+) |x |√ |x |x |x |x |
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......@@ -11,8 +11,8 @@
|参数名|类型|必填|说明|平台差异说明|
|:-|:-|:-|:-|:-:|
|onlyFromCamera|Boolean|否|是否只能从相机扫码,不允许从相册选择图片|头条小程序不支持此参数|
|scanType|Array|否|扫码类型,参数类型是数组,二维码是'qrCode',一维码是'barCode',DataMatrix是‘datamatrix’,pdf417是‘pdf417’。|头条小程序不支持此参数,支付宝只支持条码和二维码|
|onlyFromCamera|Boolean|否|是否只能从相机扫码,不允许从相册选择图片|字节跳动小程序不支持此参数|
|scanType|Array|否|扫码类型,参数类型是数组,二维码是'qrCode',一维码是'barCode',DataMatrix是‘datamatrix’,pdf417是‘pdf417’。|字节跳动小程序不支持此参数,支付宝只支持条码和二维码|
|success|Function|否|接口调用成功的回调,返回内容详见返回参数说明。||
|fail|Function|否|接口调用失败的回调函数(识别失败、用户取消等情况下触发)||
|complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)|&nbsp;|
......
**低功耗蓝牙 API 平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|x|x|x|
......
**蓝牙 API 平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|x|x|x|
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|x|√|
......@@ -32,7 +32,7 @@ uni.setScreenBrightness({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|x|√|
......@@ -65,7 +65,7 @@ uni.getScreenBrightness({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|√|√|√|
......
**剪贴板 API 平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
### uni.setClipboardData(OBJECT)
......
......@@ -23,7 +23,7 @@ uni.onCompassChange(function (res) {
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|x|√|√|√|
......
......@@ -5,7 +5,7 @@ App平台提供了更多通讯录相关API,包括读取联系人,详见:[h
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|x|x|
......
......@@ -6,7 +6,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|x|x|
......@@ -30,7 +30,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|x|x|
......@@ -47,7 +47,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|x|x|
......
**iBeacon API 平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|x|x|x|
......
......@@ -13,7 +13,7 @@
|参数|说明|平台差异说明|
|:-|:-|:-|
|brand|手机品牌|App、微信小程序、百度小程序、头条小程序、QQ小程序|
|brand|手机品牌|App、微信小程序、百度小程序、字节跳动小程序、QQ小程序|
|model|手机型号||
|pixelRatio|设备像素比||
|screenWidth|屏幕宽度||
......@@ -22,14 +22,14 @@
|windowHeight|可使用窗口高度||
|windowTop|可使用窗口的顶部位置|App、H5|
|windowBottom|可使用窗口的底部位置|App、H5|
|statusBarHeight|状态栏的高度|头条小程序不支持|
|statusBarHeight|状态栏的高度|字节跳动小程序不支持|
|navigationBarHeight|导航栏的高度|百度小程序|
|titleBarHeight|标题栏高度|支付宝小程序|
|language|应用设置的语言|头条小程序不支持|
|language|应用设置的语言|字节跳动小程序不支持|
|version|引擎版本号|H5不支持|
|storage|设备磁盘容量|支付宝小程序|
|currentBattery|当前电量百分比|支付宝小程序|
|appName|宿主APP名称|头条小程序|
|appName|宿主APP名称|字节跳动小程序|
|AppPlatform|App平台|QQ小程序|
|host|宿主平台|百度小程序|
|app|当前运行的客户端|支付宝小程序|
......@@ -102,7 +102,7 @@ uni.getSystemInfo({
|参数|说明|平台差异说明|
|:-|:-|:-|
|brand|手机品牌|App、微信小程序、百度小程序、头条小程序、QQ小程序|
|brand|手机品牌|App、微信小程序、百度小程序、字节跳动小程序、QQ小程序|
|model|手机型号||
|pixelRatio|设备像素比||
|screenWidth|屏幕宽度||
......@@ -111,14 +111,14 @@ uni.getSystemInfo({
|windowHeight|可使用窗口高度||
|windowTop|可使用窗口的顶部位置|App、H5|
|windowBottom|可使用窗口的底部位置|App、H5|
|statusBarHeight|状态栏的高度|头条小程序不支持|
|statusBarHeight|状态栏的高度|字节跳动小程序不支持|
|navigationBarHeight|导航栏的高度|百度小程序|
|titleBarHeight|标题栏高度|支付宝小程序|
|language|应用设置的语言|头条小程序不支持|
|language|应用设置的语言|字节跳动小程序不支持|
|version|引擎版本号|H5不支持|
|storage|设备磁盘容量|支付宝小程序|
|currentBattery|当前电量百分比|支付宝小程序|
|appName|宿主APP名称|头条小程序|
|appName|宿主APP名称|字节跳动小程序|
|AppPlatform|App平台|QQ小程序|
|host|宿主平台|百度小程序|
|app|当前运行的客户端|支付宝小程序|
......@@ -211,7 +211,7 @@ Android10以上,部分国产手机支持OAID,详见[匿名设备标识符(
平台差异说明
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|x|√|√|√|√|√|
......
......@@ -6,7 +6,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|√|√|x|√|
......
......@@ -44,7 +44,7 @@ uni.getNetworkType({
|参数|类型|说明|平台差异说明|
|:-|:-|:-|:-|
|isConnected|Boolean|当前是否有网络连接|头条小程序不支持|
|isConnected|Boolean|当前是否有网络连接|字节跳动小程序不支持|
|networkType|String|网络类型|&nbsp;|
**示例**
......
### uni.onUIStyleChange(CALLBACK)
监听系统主题状态变化。
**CALLBACK 返回参数**
|参数|类型|说明|平台差异说明|
|:-|:-|:-|:-|
|style|String|主题名称(dark, light)|App2.6.5+ 仅iOS|
**示例**
```javascript
uni.onUIStyleChange(function (res) {
console.log(res.style);
});
```
**注意**
- 仅 V3 编译支持,参考 manifest.json 配置
\ No newline at end of file
#### Wi-Fi
仅微信小程序平台、App平台、头条小程序支持,各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。
仅微信小程序平台、App平台、字节跳动小程序支持,各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。
微信小程序平台实现参考:[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.startWifi.html)
头条小程序的wifi API参考:[规范详情](https://developer.toutiao.com/dev/cn/mini-app/develop/api/device/wi-fi/getconnectedwifi)
字节跳动小程序的wifi API参考:[规范详情](https://developer.toutiao.com/dev/cn/mini-app/develop/api/device/wi-fi/getconnectedwifi)
App 平台实现参考
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|HBuilderX 2.0.4+|√|√|√|√|√|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|√|
......@@ -35,7 +35,7 @@ uni.setBackgroundColor({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|√|
......
### uni.loadFontFace(Object object)
动态加载字体
动态加载网络字体,文件地址需为下载类型。微信小程序 `'2.10.0'`起支持全局生效,需在 `app.vue` 中调用
注意:
......@@ -12,9 +12,9 @@
**平台差异说明**
|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|5+App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|1.9.0+ [自定义组件编译模式](https://ask.dcloud.net.cn/article/35843)|2.3.4+|基础库 2.1.0+|x|x|x|x|
|1.9.0+ [自定义组件编译模式](https://ask.dcloud.net.cn/article/35843)|2.3.4+|基础库 2.1.0+| 1.11.0+ |x|x|x|
**参数说明**
......
......@@ -6,13 +6,13 @@
**平台差异说明**
|App |H5 |微信小程序 |支付宝小程序 |百度小程序 |头条小程序 |QQ小程序 |
|App |H5 |微信小程序 |支付宝小程序 |百度小程序 |字节跳动小程序 |QQ小程序 |
|:-: |:-:|:-: |:-: |:-: |:-: |:-: |
|x |x |√ |x |√ |√ |√ |
**返回值说明**
|属性 |类型 |说明 |
|属性 |类型 |说明 |
|:-: |:-: |:-: |
|width |number |宽度,单位:px |
|height |number |高度,单位:px |
......
......@@ -26,7 +26,7 @@ uni.setNavigationBarTitle({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|√|
......@@ -85,7 +85,7 @@ uni.setNavigationBarColor({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|√|√|√|√|x|√|
......@@ -111,7 +111,7 @@ uni.showNavigationBarLoading()
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|√|√|√|√|x|√|
......@@ -138,7 +138,7 @@ uni.hideNavigationBarLoading()
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|x|x|x|
......
......@@ -112,7 +112,7 @@ query.select('#id').boundingClientRect(data => {
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|HBuilderX 2.4.7+|√|x|x|x|√|
......@@ -128,7 +128,7 @@ query.select('#id').boundingClientRect(data => {
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|x|x|√|
......
......@@ -152,8 +152,8 @@ uni.showModal({
|参数|类型|必填|说明|平台差异说明|
|:-|:-|:-|:-|:-|
|itemList|Array&lt;String&gt;|是|按钮的文字数组|微信、百度、头条小程序数组长度最大为6个|
|itemColor|HexColor|否|按钮的文字颜色,字符串格式,默认为"#000000"|头条小程序不支持|
|itemList|Array&lt;String&gt;|是|按钮的文字数组|微信、百度、字节跳动小程序数组长度最大为6个|
|itemColor|HexColor|否|按钮的文字颜色,字符串格式,默认为"#000000"|字节跳动小程序不支持|
|popover|Object|否|iPad 上弹出原生选择按钮框的指示区域,默认指向屏幕底部水平居中位置|仅 App 2.6.6+ 支持|
|success|Function|否|接口调用成功的回调函数,详见返回参数说明||
|fail|Function|否|接口调用失败的回调函数||
......@@ -190,10 +190,11 @@ uni.showActionSheet({
**Tips**
App端实现原生的、复杂的底部图文菜单,例如分享菜单,可参考[https://ext.dcloud.net.cn/plugin?id=69](https://ext.dcloud.net.cn/plugin?id=69)
- App平台,iPad设备支持设置弹出框的位置,详见 [plus.nativeUI的文档](https://www.html5plus.org/doc/zh_cn/nativeui.html#plus.nativeUI.ActionSheetStyles)
- App平台,实现原生的、复杂的底部图文菜单,例如分享菜单,可参考[https://ext.dcloud.net.cn/plugin?id=69](https://ext.dcloud.net.cn/plugin?id=69)
**注意**
- 本章的所有弹出控件都是原生控件,层级最高,可覆盖video、map、tabbar等原生控件。
- 在非H5端,本章的所有弹出控件都是原生控件,层级最高,可覆盖video、map、tabbar等原生控件。
- [uni-app插件市场](https://ext.dcloud.net.cn/)有很多封装好的前端组件,但注意前端组件层级不是最高,无法覆盖原生组件,除非使用cover-view或nvue。
- App端还有原生的[prompt API](https://www.html5plus.org/doc/zh_cn/nativeui.html#plus.nativeUI.prompt)
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -37,7 +37,7 @@ uni.setTabBarItem({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -70,7 +70,7 @@ uni.setTabBarStyle({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -89,7 +89,7 @@ uni.setTabBarStyle({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -107,7 +107,7 @@ uni.setTabBarStyle({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -135,7 +135,7 @@ uni.setTabBarBadge({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -153,7 +153,7 @@ uni.setTabBarBadge({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -171,7 +171,7 @@ uni.setTabBarBadge({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -189,7 +189,7 @@ uni.setTabBarBadge({
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√(HBuilderX 2.3.4+)|x|x|x|x|x|x|
......
......@@ -5,7 +5,7 @@
**平台差异说明**
|App|H5|微信小程序 |支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序 |支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√(nvue不支持)|√|√|x|x|x|√|
......@@ -35,7 +35,7 @@ uni.onWindowResize((res) => {
平台差异说明
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|x|x|x|
......
......@@ -3,6 +3,6 @@
目前需分平台编写
- 微信小程序:[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/worker/wx.createWorker.html)
- 头条小程序:[规范详情](https://developer.toutiao.com/docs/game/worker/tt.createWorker.html)
- 字节跳动小程序:[规范详情](https://developer.toutiao.com/docs/game/worker/tt.createWorker.html)
- QQ小程序:[规范详情](https://q.qq.com/wiki/develop/miniprogram/API/worker/worker.html)
- H5:标准H5的worker仍然可以使用
......@@ -129,7 +129,7 @@ uni-app助力数百家单位快速上线**抗疫系统**,开源众多项目,
</a>
<a href="#" class="clear-style barcode-view">
<img src="https://img-cdn-qiniu.dcloud.net.cn/uniapp/doc/wastesep-mp-toutiao.png" width="200"/>
<span style="margin-top:15px;">头条小程序码</span>
<span style="margin-top:15px;">字节跳动小程序码</span>
</a>
</div> -->
......@@ -155,15 +155,9 @@ uni-app助力数百家单位快速上线**抗疫系统**,开源众多项目,
**腾讯:** 微信小程序搜索“腾讯全民模拟炒股大赛”
**京东:** 京东开发的新冠抗疫服务平台。[H5](http://yingji-h5.chanye.jdcloud.com/)
**CSDN:** 微信小程序搜索“CSDN”
**开源中国:** 微信小程序搜索“osc+”、百度小程序搜索“开源中国社区”
**华为:** 微信小程序搜索“荣耀亲选商城”、[H5](https://m.qinxuan.honor.cn/)
**中华英才网:** 百度小程序搜索“中华英才网”
**当当网:** [H5](https://dh5.dangdang.com/)
**京东:** 京东开发的新冠抗疫服务平台。[H5](http://yingji-h5.chanye.jdcloud.com/)
<div class="scan-code">
<strong>vivo商城官方小程序:</strong> 支付宝搜索 "vivo",或鼠标移此查看[支付宝小程序码]
......@@ -185,6 +179,14 @@ uni-app助力数百家单位快速上线**抗疫系统**,开源众多项目,
**联想集团官方小程序:** 微信小程序搜索 “联想集团”
**中华英才网:** 百度小程序搜索“中华英才网”
**CSDN:** 微信小程序搜索“CSDN”
**开源中国:** 微信小程序搜索“osc+”、百度小程序搜索“开源中国社区”
**当当网:** [H5](https://dh5.dangdang.com/)
**太平洋汽车网:** H5,VR看车。需特定入口。
**西祠胡同:** [App官网扫码下载](https://www.xici.net/)[H5](https://3g.xici.net/)
......@@ -670,6 +672,8 @@ uni-app助力数百家单位快速上线**抗疫系统**,开源众多项目,
**京暖通:**专业的暖通供应和服务平台,[App和小程序通用链接](https://m3w.cn/jnt)
**大丰收农资优选:**优质农资商品购物。[安卓](https://www.dfs168.com/market/viewapp.html?id=503)[iOS](https://apps.apple.com/cn/app/id1489907205)[H5](http://wechat.dfs168.com)、微信小程序搜索:大丰收农资优选
#### 更多小程序案例(可在微信小程序中搜索)@wx-more
......
......@@ -47,10 +47,10 @@
|onPullDownRefresh|监听用户下拉动作,一般用于下拉刷新,参考[示例](api/ui/pulldown)|||
|onReachBottom|页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体见下方注意事项|||
|onTabItemTap|点击 tab 时触发,参数为Object,具体见下方注意事项|微信小程序、支付宝小程序、百度小程序、H5、App(自定义组件模式)||
|onShareAppMessage|用户点击右上角分享|微信小程序、百度小程序、头条小程序、支付宝小程序||
|onShareAppMessage|用户点击右上角分享|微信小程序、百度小程序、字节跳动小程序、支付宝小程序||
|onPageScroll|监听页面滚动,参数为Object|nvue暂不支持||
|onNavigationBarButtonTap|监听原生标题栏按钮点击事件,参数为Object|App、H5||
|onBackPress|监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:[onBackPress 详解](http://ask.dcloud.net.cn/article/35120)|app、H5、支付宝小程序||
|onBackPress|监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:[onBackPress 详解](http://ask.dcloud.net.cn/article/35120)。支付宝小程序只有真机能触发,只能监听非navigateBack引起的返回,不可阻止默认行为。|app、H5、支付宝小程序||
|onNavigationBarSearchInputChanged|监听原生标题栏搜索输入框输入内容变化事件|App、H5|1.6.0|
|onNavigationBarSearchInputConfirmed|监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。|App、H5|1.6.0|
|onNavigationBarSearchInputClicked|监听原生标题栏搜索输入框点击事件|App、H5|1.6.0|
......@@ -131,6 +131,7 @@ export default {
**注意**
- nvue 页面weex编译模式支持的生命周期同weex,具体参考:[weex生命周期介绍](/use-weex?id=生命周期)
- 支付宝小程序真机可以监听到非`navigateBack`引发的返回事件(使用小程序开发工具时不会触发`onBackPress`),不可以阻止默认返回行为
### 组件生命周期
......
......@@ -19,7 +19,7 @@
|mp-weixin|Object||[微信小程序特有配置](/collocation/manifest?id=mp-weixin)||
|mp-alipay|Object||[支付宝小程序未提供可配置项](/collocation/manifest?id=mp-alipay)|
|mp-baidu|Object||[百度小程序特有配置](/collocation/manifest?id=mp-baidu)||
|mp-toutiao|Object||[头条小程序特有配置](/collocation/manifest?id=mp-toutiao)|1.6.0|
|mp-toutiao|Object||[字节跳动小程序特有配置](/collocation/manifest?id=mp-toutiao)|1.6.0|
|mp-qq|Object||[qq 小程序特有配置](/collocation/manifest?id=mp-qq)|2.1.0|
**Tips**
......@@ -407,13 +407,13 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http
|属性|类型|说明|
|:-|:-|:-|
|appid|String|头条小程序的 AppID,登录 [https://developer.toutiao.com/](https://developer.toutiao.com/) 申请|
|setting|Object|头条小程序项目设置,参考[头条小程序项目设置](/collocation/manifest?id=mp-toutiao-setting)|
|appid|String|字节跳动小程序的 AppID,登录 [https://developer.toutiao.com/](https://developer.toutiao.com/) 申请|
|setting|Object|字节跳动小程序项目设置,参考[字节跳动小程序项目设置](/collocation/manifest?id=mp-toutiao-setting)|
|usingComponents|Boolean| 是否启用自定义组件模式,`v2.0+`,默认为false,[编译模式区别详情](https://ask.dcloud.net.cn/article/35843)|
|navigateToMiniProgramAppIdList |Array|需要跳转的小程序列表,[详见](https://developer.toutiao.com/dev/cn/mini-app/develop/framework/basic-reference/general-configuration) |
|uniStatistics|Object|[头条小程序是否开启 uni 统计,配置方法同全局配置](/collocation/manifest?id=uniStatistics)|
|uniStatistics|Object|[字节跳动小程序是否开启 uni 统计,配置方法同全局配置](/collocation/manifest?id=uniStatistics)|
#### 头条小程序项目设置@mp-toutiao-setting
#### 字节跳动小程序项目设置@mp-toutiao-setting
|属性|类型|说明|
|:-|:-|:-|
......@@ -768,9 +768,9 @@ mp-qq只支持自定义组件模式,不存在usingComponents配置
"mp-baidu": {
"appid": "百度小程序appid"
},
// 头条小程序特有配置
// 字节跳动小程序特有配置
"mp-toutiao": {
"appid": "头条小程序appid"
"appid": "字节跳动小程序appid"
},
"h5": {
"title": "演示", //页面标题,默认使用 manifest.json 的 name
......
......@@ -190,7 +190,7 @@
|navigationBarShadow|Object||导航栏阴影,配置参考下方 [导航栏阴影](/collocation/pages?id=navigationBarShadow)||
|navigationStyle|String|default|导航栏样式,仅支持 default/custom。custom即取消默认的原生导航栏,需看[使用注意](/collocation/pages?id=customnav)|微信小程序 7.0+、百度小程序、H5、App(2.0.3+)|
|disableScroll|Boolean|false|设置为 true 则页面整体不能上下滚动(bounce效果),只在页面配置中有效,在globalStyle中设置无效|微信小程序(iOS)、百度小程序(iOS)|
|backgroundColor|HexColor|#ffffff|窗口的背景色|微信小程序、百度小程序、头条小程序|
|backgroundColor|HexColor|#ffffff|窗口的背景色|微信小程序、百度小程序、字节跳动小程序|
|backgroundTextStyle|String|dark|下拉 loading 的样式,仅支持 dark/light||
|enablePullDownRefresh|Boolean|false|是否开启下拉刷新,详见[页面生命周期](/use?id=页面生命周期)。||
|onReachBottomDistance|Number|50|页面上拉触底事件触发时距页面底部距离,单位只支持px,详见[页面生命周期](/use?id=页面生命周期)||
......@@ -297,6 +297,23 @@
|backgroundImage|String||支持以下类型: 背景图片路径 - 如"./img/t.png",仅支持本地文件路径, 相对路径,相对于当前页面的host位置,根据实际标题栏宽高拉伸绘制; 渐变色 - 仅支持线性渐变,两种颜色的渐变,如“linear-gradient(to top, #a80077, #66ff00)”, 其中第一个参数为渐变方向,可取值: "to right"表示从左向右渐变, “to left"表示从右向左渐变, “to bottom"表示从上到下渐变, “to top"表示从下到上渐变, “to bottom right"表示从左上角到右下角, “to top left"表示从右下角到左上角|2.6.3|
|backgroundRepeat|String||仅在backgroundImage设置为图片路径时有效。 可取值: "repeat" - 背景图片在垂直方向和水平方向平铺; "repeat-x" - 背景图片在水平方向平铺,垂直方向拉伸; “repeat-y” - 背景图片在垂直方向平铺,水平方向拉伸; “no-repeat” - 背景图片在垂直方向和水平方向都拉伸。 默认使用 “no-repeat"|2.6.3|
|titleAlign|String|"auto"|可取值: "center"-居中对齐; "left"-居左对齐; "auto"-根据平台自动选择(Android平台居左对齐,iOS平台居中对齐)|2.6.3|
|blurEffect|String|"none"|此效果将会高斯模糊显示标题栏后的内容,仅在type为"transparent"或"float"时有效。 可取值: "dark" - 暗风格模糊,对应iOS原生UIBlurEffectStyleDark效果; "extralight" - 高亮风格模糊,对应iOS原生UIBlurEffectStyleExtraLight效果; "light" - 亮风格模糊,对应iOS原生UIBlurEffectStyleLight效果; "none" - 无模糊效果。 注意:使用模糊效果时应避免设置背景颜色,设置背景颜色可能覆盖模糊效果。|2.4.3|
|coverage|String|"132px"|标题栏控件变化作用范围,仅在type值为transparent时有效,页面滚动时标题栏背景透明度将发生变化。 当页面滚动到指定偏移量时标题栏背景变为完全不透明。 支持百分比、像素值||
|splitLine|Boolean |false|标题栏的底部分割线([SplitLineStyles](/collocation/pages?id=app-titleNView-splitLineStyles)),设置此属性则在标题栏控件的底部显示分割线,可配置颜色值及高度。 设置此属性值为undefined或null则隐藏分割线。 默认不显示底部分割线|2.6.6|
|subtitleColor|String||副标题文字颜色,颜色值格式为"#RRGGBB"和"rgba(R,G,B,A)",如"#FF0000"表示标题文字颜色为红色。 默认值与主标题文字颜色一致|2.6.6|
|subtitleSize|String|"auto"|副标题文字字体大小,字体大小单位为像素,如"14px"表示字体大小为14像素,默认值为12像素。|2.6.6|
|subtitleOverflow|String|"ellipsis"|标题文字超出显示区域时处理方式,可取值: "clip" - 超出显示区域时内容裁剪; "ellipsis" - 超出显示区域时尾部显示省略标记(...)。|2.6.6|
|subtitleText|String||副标题文字内容,设置副标后将显示两行标题,副标显示在主标题(titleText)下方。 注意:设置副标题后将居左显示|2.6.6|
|titleIcon|String||标题图标,图标路径如"./img/t.png",仅支持本地文件路径, 相对路径,相对于当前页面的host位置,固定宽高为逻辑像素值"34px"。 要求图片的宽高相同。 注意:设置标题图标后标题将居左显示。|2.6.6|
|titleIconRadius|String|无圆角|标题图标圆角,取值格式为"XXpx",其中XX为像素值(逻辑像素),如"10px"表示10像素半径圆角。|2.6.6|
#### SplitLineStyles@app-titleNView-splitLineStyles
|属性|类型|默认值|描述|版本兼容性|
|:-|:-|:-|:-|:-|
|coloe|String|#CCCCCC|底部分割线颜色,可取值: "#RRGGBB"格式字符串,如"#FF0000"表示绘制红色分割线; "rgba(R,G,B,A)",其中R/G/B分别代表红色值/绿色值/蓝色值,正整数类型,取值范围为0-255,A为透明度,浮点数类型,取值范围为0-1(0为全透明,1为不透明),如"rgba(255,0,0,0.5)",表示红色半透明||
|height|String|"1px"|可取值:像素值(逻辑像素),支持小数点,如"1px"表示1像素高;百分比,如"1%",相对于标题栏控件的高度。||
**Tips**
......@@ -316,7 +333,6 @@
|type|String|none|按钮样式,可取值见:[buttons 样式](/collocation/pages?id=app-titlenview-buttons-type)|
|color|String|默认与标题文字颜色一致|按钮上文字颜色|
|background|String|默认值为灰色半透明|按钮的背景颜色,仅在标题栏type=transparent时生效|
|badgeText|String||按钮上显示的角标文本,最多显示3个字符,超过则显示为...|
|colorPressed|String|默认值为 color 属性值自动调整透明度为 0.3|按下状态按钮文字颜色|
|float|String|right|按钮在标题栏上的显示位置,可取值"left"、"right"|
|fontWeight|String|normal|按钮上文字的粗细。可取值"normal"-标准字体、"bold"-加粗字体。|
......@@ -692,9 +708,9 @@ h5 平台下拉刷新动画,只有 circle 类型。
- Q:如何取消原生导航栏?或自定义导航
- A:参考[导航栏开发指南](http://ask.dcloud.net.cn/article/34921)
# easycom
# easycom
> `HBuilderX 2.5.5`起支持`easycom`组件模式。
> `HBuilderX 2.5.5`起支持`easycom`组件模式。
传统vue组件,需要安装、引用、注册,三个步骤后才能使用组件。`easycom`将其精简为一步。
只要组件安装在项目的components目录下,并符合`components/组件名称/组件名称.vue`目录结构。就可以不用引用、注册,直接在页面中使用。
......@@ -720,7 +736,7 @@ h5 平台下拉刷新动画,只有 circle 类型。
</script>
```
不管components目录下安装了多少组件,`easycom`打包后会自动剔除没有使用的组件,对组件库的使用尤为好。
不管components目录下安装了多少组件,`easycom`打包后会自动剔除没有使用的组件,对组件库的使用尤为好。
组件库批量安装,随意使用,自动按需打包。以官方的`uni-ui`为例,在HBuilderX新建项目界面选择`uni-ui`项目模板,只需在页面中敲u,拉出大量组件代码块,直接选择,即可使用。大幅提升开发效率,降低使用门槛。
......
......@@ -7,7 +7,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√(2.5.2+)|x|√|x|√|√|√|
......@@ -30,7 +30,7 @@
|:-|:-|:-|:-|:-|
|data|Object|可选|广告数据,通过 plus.ad.getAds (参考示例代码),设置后adpid将无效|App|
|adpid|String||uni-AD App广告位id,在[uni-AD官网](https://uniad.dcloud.net.cn/)申请广告位|App|
|unit-id|String||广告单元id,可在小程序管理后台的流量主模块新建|微信小程序、头条小程序(最低版本1.19.0+)、QQ小程序|
|unit-id|String||广告单元id,可在小程序管理后台的流量主模块新建|微信小程序、字节跳动小程序(最低版本1.19.0+)、QQ小程序|
|ad-intervals|number||广告自动刷新的间隔时间,单位为秒,参数值必须大于等于30(该参数不传入时 Banner 广告不会自动刷新)|微信小程序(基础库2.3.1+)|
|appid|String||小程序应用 ID|百度小程序|
|apid|String||小程序广告位 ID|百度小程序|
......@@ -38,7 +38,7 @@
|ad-top|Number||type为feeds时广告上边距(px),必须大于0|QQ小程序|
|ad-width|Number||type为feeds时广告宽度(px),默认100%,最大值为屏幕宽度,最小值为265|QQ小程序|
|ad-height|Number||type为feeds时广告高度(px),最小85,最大160|QQ小程序|
|type|String|feed||QQ小程序、百度小程序、头条小程序|
|type|String|feed||QQ小程序、百度小程序、字节跳动小程序|
|@load|EventHandle||广告加载成功的回调||
|@error|EventHandle||广告加载失败的回调,event.detail = {errCode: }||
|@close|EventHandle||广告关闭的回调||
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|x|√|x|x|
......
......@@ -17,12 +17,12 @@
|hover-start-time|Number|20|按住后多久出现点击态,单位毫秒|||
|hover-stay-time|Number|70|手指松开后点击态保留时间,单位毫秒|||
|app-parameter|String||打开 APP 时,向 APP 传递的参数,open-type=launchApp时有效||微信小程序、QQ小程序|
|hover-stop-propagation|boolean|false|指定是否阻止本节点的祖先节点出现点击态||微信小程序|
|lang|string|'en'|指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。||微信小程序|
|session-from|string||会话来源,open-type="contact"时有效||微信小程序|
|send-message-title|string|当前标题|会话内消息卡片标题,open-type="contact"时有效||微信小程序|
|send-message-path|string|当前分享路径|会话内消息卡片点击跳转小程序路径,open-type="contact"时有效||微信小程序|
|send-message-img|string|截图|会话内消息卡片图片,open-type="contact"时有效||微信小程序|
|hover-stop-propagation|boolean|false|指定是否阻止本节点的祖先节点出现点击态||微信小程序|
|lang|string|'en'|指定返回用户信息的语言,zh_CN 简体中文,zh_TW 繁体中文,en 英文。||微信小程序|
|session-from|string||会话来源,open-type="contact"时有效||微信小程序|
|send-message-title|string|当前标题|会话内消息卡片标题,open-type="contact"时有效||微信小程序|
|send-message-path|string|当前分享路径|会话内消息卡片点击跳转小程序路径,open-type="contact"时有效||微信小程序|
|send-message-img|string|截图|会话内消息卡片图片,open-type="contact"时有效||微信小程序|
|show-message-card|boolean|false|是否显示会话内消息卡片,设置此参数为 true,用户进入客服会话会在右下角显示"可能要发送的小程序"提示,用户点击后可以快速发送小程序消息,open-type="contact"时有效||微信小程序|
|@getphonenumber|Handler||获取用户手机号回调|open-type="getPhoneNumber"|微信小程序|
|@getuserinfo|Handler||用户点击该按钮时,会返回获取到的用户信息,从返回参数的detail中获取到的值同uni.getUserInfo|open-type="getUserInfo"|微信小程序|
......@@ -44,7 +44,7 @@
|值|说明|
|:-|:-|
|primary|微信小程序为绿色,App、H5、百度小程序、支付宝小程序为蓝色,头条小程序为红色,QQ小程序为浅蓝色|
|primary|微信小程序为绿色,App、H5、百度小程序、支付宝小程序为蓝色,字节跳动小程序为红色,QQ小程序为浅蓝色|
|default|白色|
|warn|红色|
......@@ -60,10 +60,10 @@
|值|说明|平台差异说明|
|:-|:-|:-|
|feedback|打开“意见反馈”页面,用户可提交反馈内容并上传日志|App、微信小程序、QQ小程序|
|share|触发用户转发|微信小程序、百度小程序、支付宝小程序、头条小程序、QQ小程序|
|share|触发用户转发|微信小程序、百度小程序、支付宝小程序、字节跳动小程序、QQ小程序|
|getUserInfo|获取用户信息,可以从@getuserinfo回调中获取到用户信息,包括手机号、头像、昵称等信息|微信小程序、百度小程序、QQ小程序|
|contact | 打开客服会话,如果用户在会话中点击消息卡片后返回应用,可以从 @contact 回调中获得具体信息 |微信小程序、百度小程序|
|getPhoneNumber | 获取用户手机号,可以从@getphonenumber回调中获取到用户信息|微信小程序、百度小程序、头条小程序 |
|getPhoneNumber | 获取用户手机号,可以从@getphonenumber回调中获取到用户信息|微信小程序、百度小程序、字节跳动小程序 |
|launchApp | 打开APP,可以通过app-parameter属性设定向APP传的参数|[微信小程序](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html)[QQ小程序](https://q.qq.com/wiki/develop/miniprogram/frame/open_ability/open_app.html)|
|openSetting | 打开授权设置页 |微信小程序、百度小程序|
|getAuthorize | 支持小程序授权 | 支付宝小程序 |
......
......@@ -3,7 +3,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|√|
......
......@@ -7,13 +7,13 @@
|属性名|类型|默认值|说明|平台差异说明|
|:-|:-|:-|:-|:-|
|canvas-id|String||canvas 组件的唯一标识符||
|disable-scroll|Boolean|false|当在 canvas 中移动时且有绑定手势事件时,禁止屏幕滚动以及下拉刷新|头条小程序不支持|
|@touchstart|EventHandle||手指触摸动作开始|头条小程序不支持|
|@touchmove|EventHandle||手指触摸后移动|头条小程序不支持|
|@touchend|EventHandle||手指触摸动作结束|头条小程序不支持|
|@touchcancel|EventHandle||手指触摸动作被打断,如来电提醒,弹窗|头条小程序不支持|
|@longtap|EventHandle||手指长按 500ms 之后触发,触发了长按事件后进行移动不会触发屏幕的滚动|头条小程序不支持|
|@error|EventHandle||当发生错误时触发 error 事件,detail = {errMsg: 'something wrong'}|头条小程序不支持|
|disable-scroll|Boolean|false|当在 canvas 中移动时且有绑定手势事件时,禁止屏幕滚动以及下拉刷新|字节跳动小程序不支持|
|@touchstart|EventHandle||手指触摸动作开始|字节跳动小程序不支持|
|@touchmove|EventHandle||手指触摸后移动|字节跳动小程序不支持|
|@touchend|EventHandle||手指触摸动作结束|字节跳动小程序不支持|
|@touchcancel|EventHandle||手指触摸动作被打断,如来电提醒,弹窗|字节跳动小程序不支持|
|@longtap|EventHandle||手指长按 500ms 之后触发,触发了长按事件后进行移动不会触发屏幕的滚动|字节跳动小程序不支持|
|@error|EventHandle||当发生错误时触发 error 事件,detail = {errMsg: 'something wrong'}|字节跳动小程序不支持|
**注意事项:**
......
......@@ -132,5 +132,5 @@
预览H5效果:使用浏览器的手机模式访问[https://uniapp.dcloud.io/h5/pages/component/checkbox/checkbox](https://uniapp.dcloud.io/h5/pages/component/checkbox/checkbox)
**注意**
- checkbox的默认颜色,在不同平台不一样。微信小程序是绿色的,头条小程序为红色,其他平台是蓝色的。更改颜色使用color属性。
- checkbox的默认颜色,在不同平台不一样。微信小程序是绿色的,字节跳动小程序为红色,其他平台是蓝色的。更改颜色使用color属性。
- 如需调节checkbox大小,可通过css的scale方法调节,如缩小到70%`style="transform:scale(0.7)"`
......@@ -5,15 +5,15 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
支持的事件:`click`
|属性名|类型|默认值|说明|平台差异说明|
|:-|:-|:-|:-|:-|
|scroll-top|number/string||设置顶部滚动偏移量,仅在设置了 overflow-y: scroll 成为滚动元素后生效|微信小程序2.1.0|
|属性名|类型|默认值|说明|平台差异说明|
|:-|:-|:-|:-|:-|
|scroll-top|number/string||设置顶部滚动偏移量,仅在设置了 overflow-y: scroll 成为滚动元素后生效|微信小程序2.1.0|
#### cover-image
......@@ -21,7 +21,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -30,7 +30,7 @@
|属性名|类型|默认值|说明|平台差异说明|
|:-|:-|:-|:-|:-|
|src|String||图标路径。支持本地路径、网络路径。不支持 base64 格式。|
|@load|eventhandle||图片加载成功时触发|微信小程序 2.1.0|
|@load|eventhandle||图片加载成功时触发|微信小程序 2.1.0|
|@error|eventhandle||图片加载失败时触发|微信小程序 2.1.0|
......
......@@ -14,7 +14,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|2.0.0+ [自定义组件编译模式](https://ask.dcloud.net.cn/article/35843),不含nvue|2.4.5+|基础库 2.7.0+|x|x|x|x|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√(2.2.3+)|√|√|√|√|√|
......
......@@ -6,9 +6,9 @@
|:-|:-|:-|:-|:-|
|src|String||图片资源地址||
|mode|String|'scaleToFill'|图片裁剪、缩放的模式|<div style="width:68px;"></div>|
|lazy-load|Boolean|false|图片懒加载。只针对page与scroll-view下的image有效|微信小程序、App、百度小程序、头条小程序|
|lazy-load|Boolean|false|图片懒加载。只针对page与scroll-view下的image有效|微信小程序、App、百度小程序、字节跳动小程序|
|fade-show|Boolean|true|图片显示动画效果|仅App-nvue 2.3.4+ Android有效|
|webp|boolean|false|默认不解析 webP 格式,只支持网络资源|微信小程序2.9.0|
|webp|boolean|false|默认不解析 webP 格式,只支持网络资源|微信小程序2.9.0|
|show-menu-by-longpress|boolean|false|开启长按图片显示识别小程序码菜单|微信小程序2.7.0|
|@error|HandleEvent||当错误发生时,发布到 AppService 的事件名,事件对象event.detail = {errMsg: 'something wrong'}||
|@load|HandleEvent||当图片载入完毕时,发布到 AppService 的事件名,事件对象event.detail = {height:'图片高度px', width:'图片宽度px'}|&nbsp;|
......@@ -19,7 +19,8 @@
- `src` 仅支持相对路径、绝对路径,支持 base64 码;
- 页面结构复杂,css样式太多的情况,使用 image 可能导致样式生效较慢,出现 “闪一下” 的情况,此时设置 `image{will-change: transform}` ,可优化此问题。
- 自定义组件里面使用 `<image>`时,若 `src` 使用相对路径可能出现路径查找失败的情况,故建议使用绝对路径。
- webp格式的图片,app-vue下,iOS不支持,Android支持;app-nvue下,iOS和Android均支持。app-vue下也支持gif。
- webp格式的图片在Android上是内置支持的。iOS上不同平台不一样,具体如下:app-vue下,iOS不支持;app-nvue下,iOS支持;微信小程序2.9.0起,iOS支持。
**mode 有效值:**
......@@ -30,7 +31,8 @@ mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式。
|缩放|scaleToFill|不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素|
|缩放|aspectFit|保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。|
|缩放|aspectFill|保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。|
|缩放|widthFix|宽度不变,高度自动变化,保持原图宽高比不变|
|缩放|widthFix|宽度不变,高度自动变化,保持原图宽高比不变|
|缩放|heightFix|高度不变,宽度自动变化,保持原图宽高比不变 **微信小程序 2.10.3 支持**|
|裁剪|top|不缩放图片,只显示图片的顶部区域|
|裁剪|bottom|不缩放图片,只显示图片的底部区域|
|裁剪|center|不缩放图片,只显示图片的中间区域|
......
......@@ -58,6 +58,15 @@ app端nvue专用组件。在app-nvue下,如果是长列表,使用list组件
<img src="https://img-cdn-qiniu.dcloud.net.cn/app-nvue-component-list.png" />
#### setSpecialEffects(object)
设置嵌套list父容器支持swiper-list吸顶滚动效果
###### Object object
属性|说明|类型|必填|备注
:--|:--|:--|:--|:--|
id|list父容器滚动组件id|String|是|应为最外层滚动容器,必须是list组件
headerHeight|吸顶距离|Number|是|子list吸顶距离最外层滚动容器顶部的距离
#### 事件
......@@ -102,3 +111,31 @@ app端nvue专用组件。在app-nvue下,如果是长列表,使用list组件
- `x {number}`:x轴上的偏移量
- `y {number}`:y轴上的偏移量
- `isDragging {boolean}`: 用户是否正在拖动列表
#### list.setSpecialEffects(args)
设置嵌套父容器信息
#####参数:
args 为要设置的参数为json类型可以包含下列元素
属性|类型 |默认值|必填|说明
:--|:--|:--|:--|:--|
kind|string| xianyu|是|要实现的效果目前只支持闲鱼吸顶效果
id|string|无|是|和list同时滚动的组件id,应为外层的scroller
headerHeight|float|0|是|要吸顶的header顶部距离scroller顶部的距离
#####返回值:无
#####示例:
```
//设置
const list = this.$refs["list0"];
list.setSpecialEffects({id:"scroller", headerHeight:150});
//清除
list.setSpecialEffects({});
```
......@@ -6,7 +6,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序
|:-: |:-:|:-:|:-:|:-:|:-:|:-:|
|x(见下)|x |√ |x |√ |√(基础库版本>=1.52.0) |√ |
......@@ -32,37 +32,37 @@
|@netstatus|EventHandle||网络状态通知,detail = {info}||
|@fullscreenchange|EventHandle||全屏变化事件,detail = {direction, fullScreen}。|&nbsp;|
mode 的合法值
|值|说明|
|:-|:-|
|live|直播|
|RTC|实时通话,该模式时延更低|
orientation 的合法值
|值|说明|
|:-|:-|
|vertical|竖直|
|horizontal|水平|
object-fit 的合法值
|值|说明|
|:-|:-|
|contain|图像长边填满屏幕,短边区域会被填充⿊⾊|
|fillCrop|图像铺满屏幕,超出显示区域的部分将被截掉|
sound-mode 的合法值
|值|说明|
|:-|:-|
|speaker|扬声器|
|ear|听筒|
mode 的合法值
|值|说明|
|:-|:-|
|live|直播|
|RTC|实时通话,该模式时延更低|
orientation 的合法值
|值|说明|
|:-|:-|
|vertical|竖直|
|horizontal|水平|
object-fit 的合法值
|值|说明|
|:-|:-|
|contain|图像长边填满屏幕,短边区域会被填充⿊⾊|
|fillCrop|图像铺满屏幕,超出显示区域的部分将被截掉|
sound-mode 的合法值
|值|说明|
|:-|:-|
|speaker|扬声器|
|ear|听筒|
**Tips**
......
......@@ -2,26 +2,27 @@
实时音视频录制,也称直播推流。
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√(仅nvue)|x|√|x|x|x|x|
如app平台的vue页面需要支持直播推流,需编写条件编译代码,使用 `plus.video.LivePusher`[业务指南](https://ask.dcloud.net.cn/article/13416)[规范文档](http://www.html5plus.org/doc/zh_cn/video.html#plus.video.LivePusher)
使用nvue做直播,比使用vue的优势有:
1. nvue可一套代码直接编译到App和微信
2. nvue的cover-view比vue的cover-view更强大,在视频上绘制元素更容易。如果只考虑App端的话,不用cover-view,任意组件都可以覆盖live-pusher组件,因为nvue没有层级问题。
3. 若需要视频内嵌在swiper里上下滑动(类抖音、映客首页模式),App端只有nvue才能实现
当然nvue相比vue的坏处是css写法受限,如果只开发微信小程序,不考虑App,那么使用vue页面也是一样的。
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√(仅nvue)|x|√|x|x|x|x|
如app平台的vue页面需要支持直播推流,需编写条件编译代码,使用 `plus.video.LivePusher`[业务指南](https://ask.dcloud.net.cn/article/13416)[规范文档](http://www.html5plus.org/doc/zh_cn/video.html#plus.video.LivePusher)
使用nvue做直播,比使用vue的优势有:
1. nvue可一套代码直接编译到App和微信
2. nvue的cover-view比vue的cover-view更强大,在视频上绘制元素更容易。如果只考虑App端的话,不用cover-view,任意组件都可以覆盖live-pusher组件,因为nvue没有层级问题。
3. 若需要视频内嵌在swiper里上下滑动(类抖音、映客首页模式),App端只有nvue才能实现
当然nvue相比vue的坏处是css写法受限,如果只开发微信小程序,不考虑App,那么使用vue页面也是一样的。
**参数说明**
设置live-pusher组件的推流地址,推流视频模式等。
设置live-pusher组件的推流地址,推流视频模式等。
属性|类型 |默认值|必填|说明|平台差异说明| :--|:--|:--|:--|:--|:--|
属性|类型 |默认值|必填|说明|平台差异说明|
:--|:--|:--|:--|:--|:--|
url|string| |是|推流地址,支持RTMP协议。|
mode |string|SD|否|推流视频模式,可取值:SD(标清), HD(高清), FHD(超清)。|
aspect |string|3:2|否|视频宽高比例|
......@@ -29,10 +30,10 @@ muted|Boolean|false|否|是否静音。|
enable-camera|Boolean|true|否|开启摄像头。|
auto-focus|Boolean|true|否|自动聚集。|
beauty|Number|0|否|美颜,取值范围 0-9(iOS取值范围为1) ,0 表示关闭。|
whiteness|Number|0|否|美白,取值范围 0-9(iOS取值范围为1) ,0 表示关闭。|
orientation|String|"vertical"|否|画面方向|
whiteness|Number|0|否|美白,取值范围 0-9(iOS取值范围为1) ,0 表示关闭。|
orientation|String|"vertical"|否|画面方向|
beauty|number|0|否|美颜,取值范围 0-9 ,0 表示关闭|
whiteness|number|0|否|美白,取值范围 0-9 ,0 表示关闭|
whiteness|number|0|否|美白,取值范围 0-9 ,0 表示关闭|
min-bitrate|Number|200|否|最小码率。|
max-bitrate|Number|1000|否|最大码率。|
audio-quality|string|high|否|高音质(48KHz)或低音质(16KHz),值为high, low|微信小程序1.7.0
......@@ -48,19 +49,19 @@ enable-mic|boolean|true|否|开启或关闭麦克风|微信小程序2.10.0
enable-agc|boolean|false|否|是否开启音频自动增益|微信小程序2.10.0
enable-ans|boolean|false|否|是否开启音频噪声抑制|微信小程序2.10.0
audio-volume-type|string|voicecall|否|音量类型|微信小程序2.10.0
@statechange|EventHandle|||状态变化事件,detail = {code}|
@netstatus|EventHandle|||网络状态通知,detail = {info}|
@error|EventHandle|||渲染错误事件,detail = {errMsg, errCode}|
@statechange|EventHandle|||状态变化事件,detail = {code}|
@netstatus|EventHandle|||网络状态通知,detail = {info}|
@error|EventHandle|||渲染错误事件,detail = {errMsg, errCode}|
@bgmstart|EventHandle|||背景音开始播放时触发|微信小程序2.4.0
@bgmprogress|EventHandle|||背景音进度变化时触发,detail = {progress, duration}|微信小程序2.4.0
@bgmcomplete|EventHandle|||背景音播放完成时触发|微信小程序2.4.0
orientation 的合法值
|值|说明|
|:-|:-|
vertical|竖直|
|vertical|竖直|
|horizontal|水平|
......@@ -92,24 +93,28 @@ audio-volume-type 的合法值
|值|说明|
|:-|:-|
|media|媒体音量|
|voicecall|通话音量|
网络状态数据(info)安卓
键名|说明 :--|:--|
videoBitrate | 当前视频编/码器输出的比特率,单位 kbps
audioBitrate | 当前音频编/码器输出的比特率,单位 kbps
videoFPS | 当前视频帧率
videoGOP | 当前视频 GOP,也就是每两个关键帧(I帧)间隔时长,单位 s
netSpeed | 当前的发送/接收速度
netJitter | 网络抖动情况,抖动越大,网络越不稳定
|voicecall|通话音量|
网络状态数据(info)安卓
键名|说明
:--|:--|
videoBitrate | 当前视频编/码器输出的比特率,单位 kbps
audioBitrate | 当前音频编/码器输出的比特率,单位 kbps
videoFPS | 当前视频帧率
videoGOP | 当前视频 GOP,也就是每两个关键帧(I帧)间隔时长,单位 s
netSpeed | 当前的发送/接收速度
netJitter | 网络抖动情况,抖动越大,网络越不稳定
videoWidth | 视频画面的宽度
videoHeight | 视频画面的高度
网络状态数据(info)iOS
参数|类型 |说明 :--|:--|:--|
code|Number| code码
网络状态数据(info)iOS
参数|类型 |说明
:--|:--|:--|
code|Number| code码
message|string| 具体的网络状态信息
```html
<template>
......@@ -128,101 +133,101 @@ message|string| 具体的网络状态信息
<button class="btn" @click="switchCamera">切换摄像头</button>
</view>
</template>
```
```javascript
<script>
export default {
data: {
fil: true
},
```
```javascript
<script>
export default {
data: {
fil: true
},
onReady() {
// 注意:需要在onReady中 或 onLoad 延时
this.context = uni.createLivePusherContext("livePusher", this);
},
methods: {
statechange(e) {
console.log("statechange:" + JSON.stringify(e));
},
netstatus(e) {
console.log("netstatus:" + JSON.stringify(e));
},
error(e) {
console.log("error:" + JSON.stringify(e));
},
start: function() {
this.context.start({
success: (a) => {
console.log("livePusher.start:" + JSON.stringify(a));
}
});
},
close: function() {
this.context.close({
success: (a) => {
console.log("livePusher.close:" + JSON.stringify(a));
}
});
},
snapshot: function() {
this.context.snapshot({
success: (e) => {
console.log(JSON.stringify(e));
}
});
},
resume: function() {
this.context.resume({
success: (a) => {
console.log("livePusher.resume:" + JSON.stringify(a));
}
});
},
pause: function() {
this.context.pause({
success: (a) => {
console.log("livePusher.pause:" + JSON.stringify(a));
}
});
},
stop: function() {
this.context.stop({
success: (a) => {
console.log(JSON.stringify(a));
}
});
},
switchCamera: function() {
this.context.switchCamera({
success: (a) => {
console.log("livePusher.switchCamera:" + JSON.stringify(a));
}
});
},
startPreview: function() {
this.context.startPreview({
success: (a) => {
console.log("livePusher.startPreview:" + JSON.stringify(a));
}
});
},
stopPreview: function() {
this.context.stopPreview({
success: (a) => {
console.log("livePusher.stopPreview:" + JSON.stringify(a));
}
});
}
}
}
// 注意:需要在onReady中 或 onLoad 延时
this.context = uni.createLivePusherContext("livePusher", this);
},
methods: {
statechange(e) {
console.log("statechange:" + JSON.stringify(e));
},
netstatus(e) {
console.log("netstatus:" + JSON.stringify(e));
},
error(e) {
console.log("error:" + JSON.stringify(e));
},
start: function() {
this.context.start({
success: (a) => {
console.log("livePusher.start:" + JSON.stringify(a));
}
});
},
close: function() {
this.context.close({
success: (a) => {
console.log("livePusher.close:" + JSON.stringify(a));
}
});
},
snapshot: function() {
this.context.snapshot({
success: (e) => {
console.log(JSON.stringify(e));
}
});
},
resume: function() {
this.context.resume({
success: (a) => {
console.log("livePusher.resume:" + JSON.stringify(a));
}
});
},
pause: function() {
this.context.pause({
success: (a) => {
console.log("livePusher.pause:" + JSON.stringify(a));
}
});
},
stop: function() {
this.context.stop({
success: (a) => {
console.log(JSON.stringify(a));
}
});
},
switchCamera: function() {
this.context.switchCamera({
success: (a) => {
console.log("livePusher.switchCamera:" + JSON.stringify(a));
}
});
},
startPreview: function() {
this.context.startPreview({
success: (a) => {
console.log("livePusher.startPreview:" + JSON.stringify(a));
}
});
},
stopPreview: function() {
this.context.stopPreview({
success: (a) => {
console.log("livePusher.stopPreview:" + JSON.stringify(a));
}
});
}
}
}
</script>
```
相关api:[uni.createLivePusherContext](/api/media/live-pusher-context?id=createLivePusherContext)
**注意**
* live-pusher 是原生组件,在小程序端层级高于前端组件,需使用cover-view覆盖。在低版本微信中,live-pusher无法内嵌于 scroll-view、swiper、picker-view、movable-view 中。在App端的nvue文件中,live-pusher没有这类限制。
* App平台:使用 `<live-pusher/>` 组件,打包 App 时必须勾选 manifest.json->App 模块权限配置->LivePusher(直播推流) 模块。
**注意**
* live-pusher 是原生组件,在小程序端层级高于前端组件,需使用cover-view覆盖。在低版本微信中,live-pusher无法内嵌于 scroll-view、swiper、picker-view、movable-view 中。在App端的nvue文件中,live-pusher没有这类限制。
* App平台:使用 `<live-pusher/>` 组件,打包 App 时必须勾选 manifest.json->App 模块权限配置->LivePusher(直播推流) 模块。
......@@ -4,9 +4,9 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|x|
|√|√|√|√|√|x|1.9.0+|
**属性说明**
......@@ -27,7 +27,8 @@
|enable-traffic|Boolean|false|是否开启实时路况|App-nvue 2.1.5+、微信小程序2.7.0|
|show-location|Boolean||显示带有方向的当前定位点|微信小程序、H5、百度小程序、支付宝小程序|
|polygons|Array.`<polygon>`||多边形|App-nvue 2.1.5+、微信小程序、百度小程序、支付宝小程序|
|@markertap|EventHandle||点击标记点时触发,点击标记点时触发,e.detail = {markerId}|App-nvue 2.3.3+, App平台需要指定 marker 对象属性 id|
|@markertap|EventHandle||点击标记点时触发,e.detail = {markerId}|App-nvue 2.3.3+, App平台需要指定 marker 对象属性 id|
|@labeltap|EventHandle||点击label时触发,e.detail = {markerId} |微信小程序2.9.0|
|@callouttap|EventHandle||点击标记点对应的气泡时触发,e.detail = {markerId}||
|@controltap|EventHandle||点击控件时触发,e.detail = {controlId}||
|@regionchange|EventHandle||视野发生变化时触发|微信小程序、H5、百度小程序、支付宝小程序|
......@@ -166,7 +167,8 @@ zIndex|设置多边形 Z 轴数值|Number|否|
```javascript
export default {
data() {
return {
return {
id:0, // 使用 marker点击事件 需要填写id
title: 'map',
latitude: 39.909,
longitude: 116.39742,
......@@ -201,7 +203,7 @@ map 组件相关操作的 JS API:[uni.createMapContext](api/location/map?id=cr
- H5 端获取定位信息,需要部署在 **https** 服务上,本地预览(localhost)仍然可以使用 http 协议。
- 无 GPS 模块的 PC 设备使用 Chrome 浏览器的时候,位置信息是连接谷歌服务器获取的,国内用户可能获取位置信息失败。
- App 端使用地图组件需要向高德或百度等三方服务商申请SDK资质,获取AppKey,打包时需要在manifest文件中勾选相应模块,在SDK配置中填写Appkey。注意申请包名和打包时的包名需匹配一致,证书信息匹配。在manifest可视化界面有详细申请指南。
- ios nvue Color 不支持 ARGB 十六进制,使用 rgba(r,g,b,a) 代替
##### FAQ
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......@@ -24,7 +24,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|x|√|
......
......@@ -15,8 +15,8 @@ H5、App的nvue页面,不存在混合渲染的情况,它们或者全部是
* [video](/component/video)
* [camera](/component/camera)(仅微信小程序、百度小程序支持)
* [canvas](/component/canvas)(仅在微信小程序、百度小程序表现为原生组件)
* [input](/component/input)(仅在微信小程序、支付宝小程序、头条小程序、QQ小程序中且input置焦时表现为原生组件,其中支付宝小程序的input仅为text且置焦时才表现为原生组件)
* [textarea](/component/textarea)(仅在微信小程序、百度小程序、头条小程序表现为原生组件)
* [input](/component/input)(仅在微信小程序、支付宝小程序、字节跳动小程序、QQ小程序中且input置焦时表现为原生组件,其中支付宝小程序的input仅为text且置焦时才表现为原生组件)
* [textarea](/component/textarea)(仅在微信小程序、百度小程序、字节跳动小程序表现为原生组件)
* [live-player](/component/live-player)(仅微信小程序、百度小程序支持,App端直接使用video组件可同时实现拉流)
* [live-pusher](/component/live-pusher)(仅微信小程序、百度小程序、app-nvue支持,app-vue使用plus.video.LivePusher可实现推流)
* [cover-view](/component/cover-view)
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√ 2.6.3+|2.6.3+|√ 2.9.0+|√|√|√|√|
......
......@@ -24,7 +24,7 @@
|navigate|对应 uni.navigateTo 的功能||
|redirect|对应 uni.redirectTo 的功能||
|switchTab|对应 uni.switchTab 的功能||
|reLaunch|对应 uni.reLaunch 的功能|头条小程序不支持|
|reLaunch|对应 uni.reLaunch 的功能|字节跳动小程序不支持|
|navigateBack|对应 uni.navigateBack 的功能||
|exit|退出小程序,target="miniProgram"时生效|微信2.1.0+、百度2.5.2+、QQ1.4.7+|
......
......@@ -4,7 +4,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|x|√|
......
......@@ -10,11 +10,11 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√ 2.6.3+|2.6.3+|√ 2.9.0+|√|√|√|√|
从HBuilderX 2.9.3起,编译到所有平台均支持`page-meta`,但编译到微信时,受微信基础库版本限制;编译到其他平台不受平台版本限制。
从HBuilderX 2.6.3起,编译到所有平台均支持`page-meta`,但编译到微信时,受微信基础库版本限制;编译到其他平台不受平台版本限制。
**属性说明**
......
......@@ -8,11 +8,11 @@
|:-|:-|:-|:-|
|value|Array<Number>|数组中的数字依次表示 picker-view 内的 picker-view-column 选择的第几项(下标从 0 开始),数字大于 picker-view-column 可选项长度时,选择最后一项。||
|indicator-style|String|设置选择器中间选中框的样式||
|indicator-class|String|设置选择器中间选中框的类名|app-nvue和头条小程序不支持|
|indicator-class|String|设置选择器中间选中框的类名|app-nvue和字节跳动小程序不支持|
|mask-style|String|设置蒙层的样式||
|mask-class|String|设置蒙层的类名|app-nvue和头条小程序不支持|
|mask-class|String|设置蒙层的类名|app-nvue和字节跳动小程序不支持|
|@change|EventHandle|当滚动选择,value 改变时触发 change 事件,event.detail = {value: value};value为数组,表示 picker-view 内的 picker-view-column 当前选择的是第几项(下标从 0 开始)|&nbsp;|
|@pickstart|eventhandle||当滚动选择开始时候触发事件|微信小程序2.3.1|
|@pickstart|eventhandle||当滚动选择开始时候触发事件|微信小程序2.3.1|
|@pickend|eventhandle||当滚动选择结束时候触发事件|微信小程序2.3.1|
**注意:**其中只可放置 `<picker-view-column/>` 组件,其他节点不会显示。
......
......@@ -25,7 +25,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|vue支持,nvue自2.4起支持|√|√|x|√|√|√|
......@@ -53,7 +53,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|√|
......@@ -76,7 +76,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√|√|√|√|√|√|√|
......@@ -89,7 +89,7 @@
|value|String|0|表示选中的日期,格式为"YYYY-MM-DD"||
|start|String||表示有效日期范围的开始,字符串格式为"YYYY-MM-DD"||
|end|String||表示有效日期范围的结束,字符串格式为"YYYY-MM-DD"||
|fields|String|day|有效值 year,month,day,表示选择器的粒度|H5、App 2.6.3+、微信小程序、百度小程序、头条小程序|
|fields|String|day|有效值 year,month,day,表示选择器的粒度|H5、App 2.6.3+、微信小程序、百度小程序、字节跳动小程序|
|@change|EventHandle||value 改变时触发 change 事件,event.detail = {value: value}||
|@cancel|EventHandle||取消选择时触发||
|disabled|Boolean|false|是否禁用|&nbsp;|
......@@ -108,7 +108,7 @@
**平台差异说明**
|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序|
|App|H5|微信小程序|支付宝小程序|百度小程序|字节跳动小程序|QQ小程序|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|x|x|√|x|√|√|√|
......
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册