diff --git a/README.md b/README.md index 781cb65ef111274241509ef08a996b4e1a8be8c2..b72a730ac94f7baa00f08fee1600947b841dfc80 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ -*注: Appstore、百度、头条平台不能提交简单demo,故iOS、百度小程序、头条小程序版补充了一些其他功能。* +*注: 某些平台不能提交简单demo,补充了一些其他功能。* ## 快速开始 diff --git a/docs/README.md b/docs/README.md index febd45430d4b8cefc7afb4c66ee461edbab90905..05958f5968363cc99da48f81e5d462502e54e08c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,7 +3,7 @@ 即使不跨端,```uni-app```同时也是更好的小程序开发框架。详见[评测](https://ask.dcloud.net.cn/article/35947) -`DCloud`公司拥有340万开发者用户,旗下```uni-app```有5万+案例、600+插件、50+微信/qq群、更高的百度指数,可以放心选择。 +`DCloud`公司拥有350万开发者用户,旗下```uni-app```有5万+案例、600+插件、50+微信/qq群、更高的百度指数,可以放心选择。

快速体验

@@ -41,19 +41,19 @@
- +
头条小程序版
- +
QQ小程序版

- 注:Appstore、百度、头条平台不能提交简单demo,故补充了一些其他功能。
+ 注:某些平台不能提交简单demo,故补充了一些其他功能;hello uni-app示例代码可从[github](https://github.com/dcloudio/hello-uniapp)获取

diff --git a/docs/_sidebar.md b/docs/_sidebar.md index 220e3fefa0a0057d2ec6c7c18dec734fc4e1f6a9..35847794324d5ce2134e9ffa3246bee16e7e158e 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -16,7 +16,7 @@ * [从其他项目转uni-app](translate.md) * [选型评估指南](select.md) * [常见问题](faq.md) -* [更新日志](//uniapp.dcloud.io/release) +* [更新日志](release.md)
  • 插件市场
  • diff --git a/docs/api/README.md b/docs/api/README.md index 1fce98c4c8c0fb77997239d5a177c874bbe453ed..b35437c1f9ab6b6e69bc218857150d6a2d93c90e 100644 --- a/docs/api/README.md +++ b/docs/api/README.md @@ -1,11 +1,27 @@ -框架提供丰富的 API,可以方便的调起客户端提供的能力,如获取用户信息,本地存储,支付功能等。 +`uni-app`的js API由标准ECMAScript的js API 和 uni 扩展 API 这两部分组成。 -JS API命名与小程序相同。各端受自身限制,可能某些API无法使用,具体见每个API的兼容性说明。 +标准ecmascript的API非常多,本文档没有必要列全,仅以console、settimeout为例做简要说明。扩展 API 命名与小程序相同。 + +## 标准js和浏览器js的区别 + +`uni-app`的js代码,h5端运行于浏览器中。非h5端,Android平台运行在v8引擎中,iOS平台运行在iOS自带的jscore引擎中。 + +非H5端,虽然不支持window、document、navigator等浏览器的js API,但也支持标准ECMAScript。 + +开发者不要把浏览器里的js等价于标准js。 + +ECMAScript由Ecma国际管理,是基础js语法。浏览器基于标准js扩充了window、document等js API;Node.js基于标准js扩充了fs等模块;小程序也基于标准js扩展了各种wx.xx、my.xx、swan.xx的API。 + +所以uni-app的非H5端,一样支持标准js,支持if、for等语法,支持字符串、数组、时间等变量及各种处理方法。仅仅是不支持浏览器专用对象。 + +## 各端特色API调用 除了uni-app框架内置的跨端API,各端自己的特色API也可通过[条件编译](https://uniapp.dcloud.io/platform)自由使用。 各端特色API规范参考各端的开发文档。其中App端的JS API参考[html5plus.org](https://www.html5plus.org/doc/h5p.html);uni-app也支持通过扩展原生插件来丰富App端的开发能力,具体参考[插件开发文档](http://ask.dcloud.net.cn/article/35408) +各平台的API新增,不需要uni-app升级,开发者就可以直接使用。 + ## 说明 - uni.on 开头的 API 是监听某个事件发生的 API 接口,接受一个 CALLBACK 函数作为参数。当该事件触发时,会调用 CALLBACK 函数。 diff --git a/docs/api/_sidebar.md b/docs/api/_sidebar.md index 71bb1add428ee47245a3d202393b2582280186bf..325fdcefe2763fe53a4844729447892884562484 100644 --- a/docs/api/_sidebar.md +++ b/docs/api/_sidebar.md @@ -1,9 +1,9 @@ * 基础 * [日志打印](api/log.md) + * [定时器](api/timer.md) * [uni.base64ToArrayBuffer](api/base64ToArrayBuffer?id=base64toarraybuffer) * [uni.arrayBufferToBase64](api/arrayBufferToBase64?id=arraybuffertobase64) - * [定时器](api/timer.md) - * [生命周期](api/lifetime.md) + * [生命周期](api/lifecycle.md) * 网络 * [发起请求](api/request/request.md) * [上传、下载](api/request/network-file.md) @@ -64,7 +64,7 @@ * [电量](api/system/batteryInfo.md) * [NFC](api/system/nfc.md) * [设备方向](api/system/deviceMotion.md) -* [Worker](api/worder.md) +* [Worker](api/worker.md) * 键盘 * [uni.hideKeyboard](/api/key?id=hidekeyboard) * [uni.onKeyboardHeightChange](/api/key?id=onkeyboardheightchange) diff --git a/docs/api/arrayBufferToBase64.md b/docs/api/arrayBufferToBase64.md index 9f03654e08d57eebfc9f1fafa9c5399b41161244..18765d89c66784adadc46062c68b1b0436612971 100644 --- a/docs/api/arrayBufferToBase64.md +++ b/docs/api/arrayBufferToBase64.md @@ -4,7 +4,7 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| |:-:|:-:|:-:|:-:|:-:|:-:| |√|x|√|x|x|x| diff --git a/docs/api/base64ToArrayBuffer.md b/docs/api/base64ToArrayBuffer.md index 1146f5aba073856007877531fde7edeffaf6aa61..a063fd3241d075cd0f24cbd73afcdcd825329c59 100644 --- a/docs/api/base64ToArrayBuffer.md +++ b/docs/api/base64ToArrayBuffer.md @@ -4,7 +4,7 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| |:-:|:-:|:-:|:-:|:-:|:-:| |√|x|√|x|x|x| diff --git a/docs/api/canvas/CanvasContext.md b/docs/api/canvas/CanvasContext.md index 096364d594de86a9f3eeb266cea2e64070fadf53..b5dac710281aa7f67959f03b9ed13b00e6a31671 100644 --- a/docs/api/canvas/CanvasContext.md +++ b/docs/api/canvas/CanvasContext.md @@ -2,9 +2,11 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|x|x|√| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|√|√| + +App-nvue下如需使用canvas,暂未封装为uni API,可参考[文档](https://github.com/dcloudio/NvueCanvasDemo)使用。 ### CanvasContext.fillStyle string diff --git a/docs/api/file/file.md b/docs/api/file/file.md index b5006944e5ea1881e1d47446f93ebc470db356fc..55e9cfdc259ab88c207b8b25b7d0fd83ecd2e140 100644 --- a/docs/api/file/file.md +++ b/docs/api/file/file.md @@ -3,9 +3,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|√|√|√|√| **注意:saveFile 会把临时文件移动,因此调用成功后传入的 tempFilePath 将不可用。** @@ -45,9 +45,9 @@ uni.chooseImage({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|√|√|√|√| **OBJECT 参数说明:** @@ -87,9 +87,9 @@ uni.getSavedFileList({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|√|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|√|√|x|√| **OBJECT 参数说明:** @@ -125,9 +125,9 @@ uni.getSavedFileInfo({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|√|√|√|√| **OBJECT 参数说明:** @@ -160,9 +160,9 @@ uni.getSavedFileList({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|√|√|√|√| **OBJECT 参数说明:** @@ -187,9 +187,9 @@ uni.getSavedFileList({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|√|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|√|√|√|√| **OBJECT 参数说明:** diff --git a/docs/api/file/getFileSystemManager.md b/docs/api/file/getFileSystemManager.md index eab6e499821ce184aa40591bc7ac3ad322a6c1f3..5650d6e858d983f1137121be5daf017b22c423b8 100644 --- a/docs/api/file/getFileSystemManager.md +++ b/docs/api/file/getFileSystemManager.md @@ -3,4 +3,6 @@ 获取全局唯一的文件管理器 -仅微信小程序平台支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.getFileSystemManager.html) \ No newline at end of file +- 微信小程序平台,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.getFileSystemManager.html) +- 头条小程序平台,[规范详情](https://developer.toutiao.com/docs/api/getFileSystemManager.html) +- QQ小程序平台,[规范详情](https://q.qq.com/wiki/develop/miniprogram/API/file/qq.getFileSystemManager.html) \ No newline at end of file diff --git a/docs/api/key.md b/docs/api/key.md index 66b3d73d9217d4b29c35ff13020704d4c000d312..b93065bd429a411c44daa935a06e36d35f2af350 100644 --- a/docs/api/key.md +++ b/docs/api/key.md @@ -6,7 +6,7 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| |:-:|:-:|:-:|:-:|:-:|:-:|:-:| |√|√|√|√|x|√|√| @@ -17,7 +17,7 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| |:-:|:-:|:-:|:-:|:-:|:-:|:-:| |HBuilderX 2.2.3+|x|基础库2.7+|x|x|x|√| diff --git a/docs/api/lifetime.md b/docs/api/lifecycle.md similarity index 85% rename from docs/api/lifetime.md rename to docs/api/lifecycle.md index eed16deb550ac3022c10dfaab41428ff31522708..6669916b5f0230c13c5ece94357e508251c7a2b8 100644 --- a/docs/api/lifetime.md +++ b/docs/api/lifecycle.md @@ -1,83 +1,83 @@ -### 应用生命周期 - -``uni-app`` 支持如下应用生命周期函数: - -|函数名|说明| -|:-|:-| -|onLaunch|当``uni-app`` 初始化完成时触发(全局只触发一次)| -|onShow|当 ``uni-app`` 启动,或从后台进入前台显示| -|onHide|当 ``uni-app`` 从前台进入后台| -|onUniNViewMessage|对 ``nvue`` 页面发送的数据进行监听,可参考 [nvue 向 vue 通讯](/use-weex?id=nvue-向-vue-通讯)| - -**注意** - -- 应用生命周期仅可在``App.vue``中监听,在其它页面监听无效。 -- onlaunch里进行页面跳转,如遇白屏报错,请参考[https://ask.dcloud.net.cn/article/35942](https://ask.dcloud.net.cn/article/35942) - -### 页面生命周期 - -``uni-app`` 支持如下页面生命周期函数: - -|函数名|说明|平台差异说明|最低版本| -|:-|:-|:-|:-| -|onLoad|监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参),参考[示例](/api/router?id=navigateto)||| -|onShow|监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面||| -|onReady|监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发||| -|onHide|监听页面隐藏||| -|onUnload|监听页面卸载||| -|onResize|监听窗口尺寸变化|5+App、微信小程序|| -|onPullDownRefresh|监听用户下拉动作,一般用于下拉刷新,参考[示例](api/ui/pulldown)||| -|onReachBottom|页面滚动到底部的事件(不是scroll-view滚到底),常用于上拉加载下一页数据。如使用scroll-view导致页面级没有滚动,则触底事件不会被触发||| -|onTabItemTap|点击 tab 时触发,参数为Object,具体见下方注意事项|微信小程序、百度小程序、H5、5+App(自定义组件模式)|| -|onShareAppMessage|用户点击右上角分享|微信小程序、百度小程序、头条小程序、支付宝小程序|| -|onPageScroll|监听页面滚动,参数为Object||| -|onNavigationBarButtonTap|监听原生标题栏按钮点击事件,参数为Object|5+ App、H5|| -|onBackPress|监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:[onBackPress 详解](http://ask.dcloud.net.cn/article/35120)|5+App、H5|| -|onNavigationBarSearchInputChanged|监听原生标题栏搜索输入框输入内容变化事件|5+App、H5|1.6.0| -|onNavigationBarSearchInputConfirmed|监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。|5+App、H5|1.6.0| -|onNavigationBarSearchInputClicked|监听原生标题栏搜索输入框点击事件|5+App、H5|1.6.0| - -``onPageScroll`` 参数说明: - -|属性|类型|说明| -|---|---|---| -|scrollTop|Number|页面在垂直方向已滚动的距离(单位px)| - -``onTabItemTap`` 参数说明: - -|属性|类型|说明| -|---|---|---| -|index|String|被点击tabItem的序号,从0开始| -|pagePath|String|被点击tabItem的页面路径| -|text|String|被点击tabItem的按钮文字| - -**注意** -- onTabItemTap常用于点击当前tabitem,滚动或刷新当前页面。如果是点击不同的tabitem,一定会触发页面切换。 -- 如果想在App端实现点击某个tabitem不跳转页面,不能使用onTabItemTap,可以使用[plus.nativeObj.view](http://www.html5plus.org/doc/zh_cn/nativeobj.html)放一个区块盖住原先的tabitem,并拦截点击事件。 -- onTabItemTap在App端,从HBuilderX 1.9 的自定义组件编译模式开始支持。 - -``onNavigationBarButtonTap`` 参数说明: - -|属性|类型|说明| -|---|---|---| -|index|Number|原生标题栏按钮数组的下标| - -`onBackPress` 回调参数对象说明: - -|属性|类型|说明| -|---|---|---| -|from|String|触发返回行为的来源:'backbutton'——左上角导航栏按钮及安卓返回键;'navigateBack'——uni.navigateBack() 方法。| -```javascript -export default { - data() { - return {}; - }, - onBackPress(options) { - console.log('from:' + options.from) - } -} -``` - -**注意** - -- nvue 页面支持的生命周期参考:[nvue 生命周期介绍](/use-weex?id=生命周期)。 +### 应用生命周期 + +``uni-app`` 支持如下应用生命周期函数: + +|函数名|说明| +|:-|:-| +|onLaunch|当``uni-app`` 初始化完成时触发(全局只触发一次)| +|onShow|当 ``uni-app`` 启动,或从后台进入前台显示| +|onHide|当 ``uni-app`` 从前台进入后台| +|onUniNViewMessage|对 ``nvue`` 页面发送的数据进行监听,可参考 [nvue 向 vue 通讯](/use-weex?id=nvue-向-vue-通讯)| + +**注意** + +- 应用生命周期仅可在``App.vue``中监听,在其它页面监听无效。 +- onlaunch里进行页面跳转,如遇白屏报错,请参考[https://ask.dcloud.net.cn/article/35942](https://ask.dcloud.net.cn/article/35942) + +### 页面生命周期 + +``uni-app`` 支持如下页面生命周期函数: + +|函数名|说明|平台差异说明|最低版本| +|:-|:-|:-|:-| +|onLoad|监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参),参考[示例](/api/router?id=navigateto)||| +|onShow|监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面||| +|onReady|监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发||| +|onHide|监听页面隐藏||| +|onUnload|监听页面卸载||| +|onResize|监听窗口尺寸变化|App、微信小程序|| +|onPullDownRefresh|监听用户下拉动作,一般用于下拉刷新,参考[示例](api/ui/pulldown)||| +|onReachBottom|页面滚动到底部的事件(不是scroll-view滚到底),常用于上拉加载下一页数据。如使用scroll-view导致页面级没有滚动,则触底事件不会被触发||| +|onTabItemTap|点击 tab 时触发,参数为Object,具体见下方注意事项|微信小程序、百度小程序、H5、App(自定义组件模式)|| +|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|| +|onNavigationBarSearchInputChanged|监听原生标题栏搜索输入框输入内容变化事件|App、H5|1.6.0| +|onNavigationBarSearchInputConfirmed|监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。|App、H5|1.6.0| +|onNavigationBarSearchInputClicked|监听原生标题栏搜索输入框点击事件|App、H5|1.6.0| + +``onPageScroll`` 参数说明: + +|属性|类型|说明| +|---|---|---| +|scrollTop|Number|页面在垂直方向已滚动的距离(单位px)| + +``onTabItemTap`` 参数说明: + +|属性|类型|说明| +|---|---|---| +|index|String|被点击tabItem的序号,从0开始| +|pagePath|String|被点击tabItem的页面路径| +|text|String|被点击tabItem的按钮文字| + +**注意** +- onTabItemTap常用于点击当前tabitem,滚动或刷新当前页面。如果是点击不同的tabitem,一定会触发页面切换。 +- 如果想在App端实现点击某个tabitem不跳转页面,不能使用onTabItemTap,可以使用[plus.nativeObj.view](http://www.html5plus.org/doc/zh_cn/nativeobj.html)放一个区块盖住原先的tabitem,并拦截点击事件。 +- onTabItemTap在App端,从HBuilderX 1.9 的自定义组件编译模式开始支持。 + +``onNavigationBarButtonTap`` 参数说明: + +|属性|类型|说明| +|---|---|---| +|index|Number|原生标题栏按钮数组的下标| + +`onBackPress` 回调参数对象说明: + +|属性|类型|说明| +|---|---|---| +|from|String|触发返回行为的来源:'backbutton'——左上角导航栏按钮及安卓返回键;'navigateBack'——uni.navigateBack() 方法。| +```javascript +export default { + data() { + return {}; + }, + onBackPress(options) { + console.log('from:' + options.from) + } +} +``` + +**注意** + +- nvue 页面的weex编译模式支持的生命周期,[参考](/use-weex?id=生命周期)。 diff --git a/docs/api/location/location.md b/docs/api/location/location.md index de3a1dc6be74bba08fc6992593fa10041580b2a8..8cf70846068606df2e1264ecb7548d323a6aff37 100644 --- a/docs/api/location/location.md +++ b/docs/api/location/location.md @@ -1,6 +1,6 @@ ### uni.getLocation(OBJECT) 获取当前的地理位置、速度。 -在微信小程序中,当用户离开应用后,此接口无法调用;当用户点击“显示在聊天顶部”时,此接口可继续调用。 +在微信小程序中,当用户离开应用后,此接口无法调用,除非申请后台持续定位权限;当用户点击“显示在聊天顶部”时,此接口可继续调用。 **OBJECT 参数说明** @@ -57,10 +57,11 @@ uni.getLocation({ - H5:在较新的手机浏览器上,H5 端获取定位信息,要求部署在 **https** 服务上,本地预览(localhost)仍然可以使用 http 协议。 - H5:无 GPS 模块的 PC 设备使用 Chrome 浏览器的时候,位置信息是连接谷歌服务器获取的,国内用户可能获取位置信息失败。 - H5:微信公众号可使用微信js sdk,[详见](https://ask.dcloud.net.cn/article/35380) -- App:Android由于谷歌服务被墙,想在国产手机上正常定位,需要向高德等三方服务商申请SDK资质,获取AppKey。云打包时需要在manifest的SDK配置中填写Appkey。在manifest可视化界面有详细申请指南。离线打包自行在原生工程中配置。 +- App:Android由于谷歌服务被墙,想在国产手机上正常定位,需要向高德等三方服务商申请SDK资质,获取AppKey。云打包时需要在manifest的SDK配置中填写Appkey。在manifest可视化界面有详细申请指南。离线打包自行在原生工程中配置。注意包名和appkey信息必须匹配。 - App:```` 组件默认为国测局坐标gcj02,调用 ``uni.getLocation`` 返回结果传递给 ```` 组件时,需指定 type 为 gcj02。 - App:持续定位方案:iOS端可以申请持续定位权限,[参考](https://ask.dcloud.net.cn/article/12569)。Android如果进程被杀,代码无法执行。可以使用[unipush](https://ask.dcloud.net.cn/article/35622),通过服务器激活App,执行透传消息,让App启动然后采集位置。Android上,即使自己写原生插件做后台进程,也很容易被杀,unipush是更合适的方案 - 小程序:api默认不返回详细地址中文描述。需要中文地址有2种方式:1、使用高德地图小程序sdk,在app和微信上都可以获得中文地址,[参考](http://ask.dcloud.net.cn/article/35070)。2、只考虑app,使用``plus.geolocation``也可以获取中文地址 +- 可以通过用户授权API来判断用户是否给应用授予定位权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize) ### uni.chooseLocation(OBJECT) 打开地图选择位置。 @@ -69,7 +70,7 @@ uni.getLocation({ |5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| |:-:|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x|x| +|√|√|√|√|√|√|x| **OBJECT 参数说明** diff --git a/docs/api/location/map.md b/docs/api/location/map.md index 95e9c1a7c9d6f97aa9052287d4add37abdd74101..d14ac00c7919c96485739ac3caf2168aa63eeeaa 100644 --- a/docs/api/location/map.md +++ b/docs/api/location/map.md @@ -1,6 +1,11 @@ ### uni.createMapContext(mapId,this) 创建并返回 map 上下文 ``mapContext`` 对象。在自定义组件下,第二个参数传入组件实例this,以操作组件内 ```` 组件。 +**注意:uni.createMapContext(mapId, this)** +- app-nvue 平台 2.2.5+ 支持 uni.createMapContext(mapId, this) +- app-nvue 平台 2.2.5- 需要同时设置组件属性id和ref ````,或者直接使用 ref,例如 ``this.$refs.map1`` + + **平台差异说明** |5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| @@ -17,11 +22,11 @@ mapContext |:-|:-|:-|:-|:-| |getCenterLocation|OBJECT|获取当前地图中心的经纬度,返回的是 gcj02 坐标系,可以用于 [uni.openLocation](api/location/location?id=getlocation)||| |moveToLocation||将地图中心移动到当前定位点,需要配合map组件的show-location使用||| -|translateMarker|OBJECT|平移marker,带动画|App-nvue 2.1.5+、微信小程序带动画|| -|includePoints|OBJECT|缩放视野展示所有经纬度|App-nvue 2.1.5+|| +|translateMarker|OBJECT|平移marker,带动画|app-nvue 2.1.5+、微信小程序带动画|| +|includePoints|OBJECT|缩放视野展示所有经纬度|app-nvue 2.1.5+|| |getRegion|OBJECT|获取当前地图的视野范围||| |getScale|OBJECT|获取当前地图的缩放级别||| -|$getAppMap||获取原生地图对象 [plus.maps.Map](https://www.html5plus.org/doc/zh_cn/maps.html#plus.maps.Map)|5+App自定义组件模式|1.9.3| +|$getAppMap||获取原生地图对象 [plus.maps.Map](https://www.html5plus.org/doc/zh_cn/maps.html#plus.maps.Map)|app-vue自定义组件模式|1.9.3| `$getAppMap()` 注意事项: @@ -72,10 +77,36 @@ mapContext |fail|Function|否|接口调用失败的回调函数| |complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)| +## mapSearch 模块(module) #### reverseGeocode(Object,callback) > 反向地理编码 + ##### Object 属性|类型 |默认值|必填|说明 :--|:--|:--|:--|:--| point|Object| |是|{latitude: 纬度, longitude: 经度} + ##### callback 返回 Object 参数说明 +属性|类型 |说明 :--|:--|:--| type|String|"success" 表示成功, "fail" 表示失败 code|Number| 成功返回 0,失败返回相应 code 码 +message|String|失败描述 +address|String|查询后地址 (成功时返回) + + #### poiSearchNearBy(Object,callback); > 周边检索 ##### Object 属性|类型 |默认值|必填|说明 :--|:--|:--|:--|:--| point|Object| |是|检索的中心点坐标 {latitude: 纬度, longitude: 经度} +key|String| | 是|搜索关键字 radius|Number|3000|否|检索的半径,单位为米 index|Number|1|否|要获取检索结果的页号索引 ##### callback 返回 Object 参数说明 +属性|类型 |说明 :--|:--|:--| +type|String|"success" 表示成功, "fail" 表示失败 code|Number| 成功返回 0,失败返回相应 code 码 +message|String|失败描述 +totalNumber|Number|返回的POI数目 +currentNumber|Number|当前页POI数目 +pageNumber|Number|页数 +pageIndex|Number|当前页号索引 +poiList|Array.<poiObject>|POI信息数组 + +##### poiObject +属性|类型 |说明 :--|:--|:--| +location|Object|{latitude: 纬度, longitude: 经度} +name|String|名称 +type|String|类型 +distance|Number|距离(单位米) +address|String|地址 + **Tips** -- 如果想在App端实现更多地图功能,可通过`$getAppMap()`获取原生地图对象`plus.maps.Map`,然后参考[文档](https://www.html5plus.org/doc/zh_cn/maps.html#plus.maps.Map)实现更多功能。 +- App端使用map,nvue比vue更强大。 - H5 端获取定位信息,需要部署在 **https** 服务上,本地预览(localhost)仍然可以使用 http 协议。 - 无 GPS 模块的 PC 设备使用 Chrome 浏览器的时候,位置信息是连接谷歌服务器获取的,国内用户可能获取位置信息失败。 - App 端使用地图组件需要向高德或百度等三方服务商申请SDK资质,获取AppKey,打包时需要在manifest的SDK配置中填写Appkey。在manifest可视化界面有详细申请指南。 diff --git a/docs/api/log.md b/docs/api/log.md index 80b65384c36d117749cb84b9793304b83d117a43..645be1efbb8d7ab318ddf3db86edaba3cc7f2964 100644 --- a/docs/api/log.md +++ b/docs/api/log.md @@ -17,4 +17,4 @@ - 不同平台对于 console 方法的支持存在差异,建议在开发过程中只使用文档中提到的方法。 - HBuilderX中有2个重要的代码块,敲`clog`:可直接输出`console.log()`;敲`clogv`:可输出`console.log(": " + );`,并且出现双光标,方便把变量名称和值同时打印出来。 -- HBuilderX 1.9.7 以上的自定义组件模式,支持打印对象信息到控制台。老版本可使用`clogj`代码块将json对象转为字符串打印出来。 \ No newline at end of file +- HBuilderX 1.9.7 以上的自定义组件模式,在App端支持打印对象信息到控制台。老版本可使用`clogj`代码块将json对象转为字符串打印出来。 diff --git a/docs/api/media/audio-context.md b/docs/api/media/audio-context.md index 7b38c744ad398b5235891ad4c0b0886168fce66e..85a1f3c8904618ca693c3a42f1ba79ef1615f595 100644 --- a/docs/api/media/audio-context.md +++ b/docs/api/media/audio-context.md @@ -3,9 +3,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|x|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|x|√|√|√| **innerAudioContext 对象的属性列表** diff --git a/docs/api/media/background-audio-manager.md b/docs/api/media/background-audio-manager.md index 261f5ab02df58c0f202d2678ab3b6e70960b70c8..f92e0bddc010e95d97d692aae4aa1613c3562729 100644 --- a/docs/api/media/background-audio-manager.md +++ b/docs/api/media/background-audio-manager.md @@ -3,9 +3,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|x|√|√|√| **backgroundAudioManager 对象的属性列表** @@ -64,6 +64,7 @@ bgAudioMannager.src = 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/audio/music.mp ``` -Tips: - -* ios应用背景播放需在manifest.json -> app-plus -> distribute -> ios 节点添加 ``"UIBackgroundModes":["audio"]`` 才能保证音乐可以后台播放(打包成ipa生效)。 \ No newline at end of file +**注意** +因为背景音频播放耗费手机电量,所以平台都有管控,需在manifest中填写申请。 +- ios App平台,背景播放需在manifest.json -> app-plus -> distribute -> ios 节点添加 ``"UIBackgroundModes":["audio"]`` 才能保证音乐可以后台播放(打包成ipa生效) +- 小程序平台,需在manifest.json 对应的小程序节点下,填写"requiredBackgroundModes": ["audio"]。发布小程序时平台会审核 \ No newline at end of file diff --git a/docs/api/media/camera-context.md b/docs/api/media/camera-context.md index 32707ce182bd07e6f3b41719e492e23f7d211f35..6b685f4d09bbc66437c5d8efe9deba2484bc53df 100644 --- a/docs/api/media/camera-context.md +++ b/docs/api/media/camera-context.md @@ -1,11 +1,13 @@ ### uni.createCameraContext() -创建并返回 camera 上下文 cameraContext 对象。 +创建并返回 camera 组件的上下文 cameraContext 对象。 **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|√| + +本API为 camera 组件配套的js API,与 camera 组件的平台兼容性相同,可实现非全屏摄像头。App端可通过[plus.camera](https://www.html5plus.org/doc/zh_cn/camera.html)实现全屏摄像头。 **cameraContext 对象的方法列表** @@ -44,4 +46,5 @@ **注意** - App下实现OCR等证件识别等需求,可在插件市场获取原生插件,[https://ext.dcloud.net.cn/plugin?id=135](https://ext.dcloud.net.cn/plugin?id=135) -- 微信小程序下实现OCR等证件识别等需求,插件市场也有封装,搜索 [ocr](https://ext.dcloud.net.cn/search?q=ocr) 可见。 \ No newline at end of file +- 微信小程序下实现OCR等证件识别等需求,插件市场也有封装,搜索 [ocr](https://ext.dcloud.net.cn/search?q=ocr) 可见。 +- 可以通过用户授权API来判断用户是否给应用授予摄像头的访问权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize) diff --git a/docs/api/media/editor-context.md b/docs/api/media/editor-context.md index 3f79b8bad2a833b9879514d113ab3502883ddd55..93d4194e20b57189738ce5783e44fdfda840a9eb 100644 --- a/docs/api/media/editor-context.md +++ b/docs/api/media/editor-context.md @@ -1,14 +1,14 @@ ## editorContext -editorContext 实例,可通过 [uni.createSelectorQuery](/api/ui/nodes-info?id=createselectorquery) 获取。 +editor 组件对应的 editorContext 实例,可通过 [uni.createSelectorQuery](/api/ui/nodes-info?id=createselectorquery) 获取。 `editorContext` 通过 `id` 跟一个 [``](/component/editor) 组件绑定,操作对应的 [``](/component/editor) 组件。 **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|x|x|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|x|x|x|x| ## editorContext.format(name, value) @@ -86,7 +86,7 @@ editorContext 实例,可通过 [uni.createSelectorQuery](/api/ui/nodes-info?id | fail | Function | | 否 | 接口调用失败的回调函数 | | complete | Function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | -# editorContext.setContents(OBJECT) +## editorContext.setContents(OBJECT) 初始化编辑器内容,hmlt和delta同时存在时仅delta生效 @@ -158,4 +158,4 @@ editorContext 实例,可通过 [uni.createSelectorQuery](/api/ui/nodes-info?id | --- | --- | --- | --- | --- | | success | Function | | 否 | 接口调用成功的回调函数 | | fail | Function | | 否 | 接口调用失败的回调函数 | -| complete | Function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | \ No newline at end of file +| complete | Function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | diff --git a/docs/api/media/image.md b/docs/api/media/image.md index 3f4f6274727ae6fd33440542c6db108dbf717306..a4002edfc749523868558e9228a7999c52dea2de 100644 --- a/docs/api/media/image.md +++ b/docs/api/media/image.md @@ -19,6 +19,7 @@ App端如需要更丰富的相机拍照API(如直接调用前置摄像头) **Tips** - count 值在 H5 平台的表现,基于浏览器本身的规范。目前测试的结果来看,只能限制单选/多选,并不能限制数量。并且,在实际的手机浏览器很少有能够支持多选的。 +- 可以通过用户授权API来判断用户是否给应用授予相册或摄像头的访问权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize) **注:文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 [uni.saveFile](api/file/file?id=savefile),在应用下次启动时才能访问得到。** @@ -210,6 +211,10 @@ uni.chooseImage({ |:-|:-|:-| |errMsg|String|调用结果| +**注意** + +- 可以通过用户授权API来判断用户是否给应用授予相册的访问权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize) + **示例代码:** ```javascript @@ -235,7 +240,7 @@ uni.chooseImage({ |5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序 |:-:|:-:|:-:|:-:|:-:|:-:| -|1.9.7+ [自定义组件编译模式](https://ask.dcloud.net.cn/article/35843)|x|√|√|x|x| +|1.9.7+ [自定义组件编译模式](https://ask.dcloud.net.cn/article/35843)|x|√|√|x|√| **OBJECT 参数说明** @@ -268,11 +273,11 @@ uni.compressImage({ # wx.chooseMessageFile(OBJECT) -从客户端会话选择文件。 +从微信聊天会话中选择文件。 **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| |:-:|:-:|:-:|:-:|:-:|:-:| |x|x|√|x|x|x| diff --git a/docs/api/media/live-player-context.md b/docs/api/media/live-player-context.md index ec2280173c9e126a24b0e9f0276bb16984414224..ae08cef2a9ec6053f92549808f8e532361b9106d 100644 --- a/docs/api/media/live-player-context.md +++ b/docs/api/media/live-player-context.md @@ -1,13 +1,13 @@ ### uni.createLivePlayerContext(livePlayerId, this) -创建 live-player 上下文 livePlayerContext 对象。 +创建 live-player 上下文 livePlayerContext 对象。注意是直播的播放而不是推流。 **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|见下|x|√|x|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|见下|x|√|x|√|x|√| -App平台的直播,不使用此API,而使用`plus.video.createLivePusher`,[详见](https://ask.dcloud.net.cn/article/13416) +App平台的直播播放,不使用此API,而直接使用video的API。 **参数说明** @@ -44,3 +44,99 @@ App平台的直播,不使用此API,而使用`plus.video.createLivePusher`, |success|Function|否|接口调用成功的回调函数| |fail|Function|否|接口调用失败的回调函数| |complete|Function|否|接口调用结束的回调函数(调用成功、失败都会执行)| + + + +### uni.createLivePusherContext(livePusherId, this) +创建 live-pusher 上下文 livePusherContext 对象。 + +**平台差异说明** + +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|见下|x|√|x|x|x|x| + +- app-nvue 平台 2.2.5(alpha)+ 支持 uni.createLivePusherContext(livePusherId, this) +- app-nvue 平台 2.2.5(alpha)- 需要同时设置组件属性id和ref ````,或者直接使用 ref,例如 ``this.$refs.livepusher1`` +- 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组件 +3. 若需要视频内嵌在swiper里上下滑动(类抖音、映客首页模式),App端只有nvue才能实现 +当然nvue相比vue的坏处是css写法受限,如果只开发微信小程序,不考虑App,那么使用vue页面也是一样的。 + +**参数说明** + +设置live-pusher组件的推流地址,推流视频模式等。 + +属性|类型 |默认值|必填|说明 :--|:--|:--|:--|:--| +url|string| |是|推流地址,支持RTMP协议。 +mode |string| |否|推流视频模式,可取值:SD(标清), HD(高清), FHD(超清)。 +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 表示关闭。 + + #### API #### start(callback) +> 开始推流 + +##### callback 返回 Object 参数说明 +属性|类型 |说明 :--|:--|:--| +type | String | "success" 表示成功, "fail" 表示失败 #### pause(callback) > 暂停推流 + +##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### resume(callback) > 恢复推流 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + + +#### stop(callback) > 停止推流 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### switchCamera(callback) > 切换前后摄像头 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### snapshot(callback) > 快照 + +##### callback 返回 Object 参数说明 +##### 成功时的回调 参数|类型 |说明 :--|:--|:--| type|string|"success" 表示成功, "fail" 表示失败 +code|Number| 对应code码 +message|object|{width:"快照图片宽度",height:"快照图片高度",tempImagePath:"快照图片路径"}。 + +##### 失败的回调 参数|类型 |说明 :--|:--|:--| type|string|"fail" 表示失败 +code|Number| +message|object| + + +#### startPreview(callback) > 开启摄像头预览 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### stopPreview(callback) > 关闭摄像头预览 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### 事件 + #### statechange +> 状态变化事件 ##### 返回参数(detail)的详细说明 参数|类型|说明 :--|:--|:--| +code|Number| +message|string| + + #### netstatus +> 网络状态通知事件 ##### 安卓 返回参数(detail)的详细说明 键名|说明 :--|:--| +videoBitrate | 当前视频编/码器输出的比特率,单位 kbps +audioBitrate | 当前音频编/码器输出的比特率,单位 kbps +videoFPS | 当前视频帧率 +videoGOP | 当前视频 GOP,也就是每两个关键帧(I帧)间隔时长,单位 s +netSpeed | 当前的发送/接收速度 +netJitter | 网络抖动情况,抖动越大,网络越不稳定 +videoWidth | 视频画面的宽度 +videoHeight | 视频画面的高度 + +##### iOS 返回参数(detail)的详细说明 参数|类型 |说明 :--|:--|:--| +code|Number| code码 +message|string| 具体的网络状态信息 + + #### error > 渲染错误事件 ##### 返回参数(detail)的详细说明 参数|类型 |说明 :--|:--|:--| +errCode|Number| +errMsg|string| diff --git a/docs/api/media/live-pusher-context.md b/docs/api/media/live-pusher-context.md new file mode 100644 index 0000000000000000000000000000000000000000..3a4aa587d89514b3d49d42c4252b18e5597d70f9 --- /dev/null +++ b/docs/api/media/live-pusher-context.md @@ -0,0 +1,88 @@ +### uni.createLivePusherContext(livePusherId, this) +创建 live-pusher 上下文 livePusherContext 对象。 + +**平台差异说明** + +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| +|:-:|:-:|:-:|:-:|:-:|:-:| +|见下|x|√|x|x|x| + + +**参数说明** + +设置live-pusher组件的推流地址,推流视频模式等。 + +属性|类型 |默认值|必填|说明 :--|:--|:--|:--|:--| +url|string| |是|推流地址,支持RTMP协议。 +mode |string| |否|推流视频模式,可取值:SD(标清), HD(高清), FHD(超清)。 +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 表示关闭。 + +**注意:** +- app-nvue 平台 2.2.5(alpha)+ 支持 uni.createLivePusherContext(livePusherId, this) +- app-nvue 平台 2.2.5(alpha)- 需要同时设置组件属性id和ref ````,或者直接使用 ref,例如 ``this.$refs.livepusher1`` + + ### API #### start(callback) +> 开始推流 + +##### callback 返回 Object 参数说明 +属性|类型 |说明 :--|:--|:--| +type | String | "success" 表示成功, "fail" 表示失败 #### pause(callback) > 暂停推流 + +##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### resume(callback) > 恢复推流 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + + +#### stop(callback) > 停止推流 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### switchCamera(callback) > 切换前后摄像头 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### snapshot(callback) > 快照 + +##### callback 返回 Object 参数说明 +##### 成功时的回调 参数|类型 |说明 :--|:--|:--| type|string|"success" 表示成功, "fail" 表示失败 +code|Number| 对应code码 +message|object|{width:"快照图片宽度",height:"快照图片高度",tempImagePath:"快照图片路径"}。 + +##### 失败的回调 参数|类型 |说明 :--|:--|:--| type|string|"fail" 表示失败 +code|Number| +message|object| + + +#### startPreview(callback) > 开启摄像头预览 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +#### stopPreview(callback) > 关闭摄像头预览 + ##### callback 返回 Object 参数说明 参数|类型 |说明 :--|:--|:--| type | String | "success" 表示成功, "fail" 表示失败 + +### 事件 + #### statechange +> 状态变化事件 ##### 返回参数(detail)的详细说明 参数|类型|说明 :--|:--|:--| +code|Number| +message|string| + + #### netstatus +> 网络状态通知事件 ##### 安卓 返回参数(detail)的详细说明 键名|说明 :--|:--| +videoBitrate | 当前视频编/码器输出的比特率,单位 kbps +audioBitrate | 当前音频编/码器输出的比特率,单位 kbps +videoFPS | 当前视频帧率 +videoGOP | 当前视频 GOP,也就是每两个关键帧(I帧)间隔时长,单位 s +netSpeed | 当前的发送/接收速度 +netJitter | 网络抖动情况,抖动越大,网络越不稳定 +videoWidth | 视频画面的宽度 +videoHeight | 视频画面的高度 + +##### iOS 返回参数(detail)的详细说明 参数|类型 |说明 :--|:--|:--| +code|Number| code码 +message|string| 具体的网络状态信息 + + #### error > 渲染错误事件 ##### 返回参数(detail)的详细说明 参数|类型 |说明 :--|:--|:--| +errCode|Number| +errMsg|string| diff --git a/docs/api/media/record-manager.md b/docs/api/media/record-manager.md index 425d0964539282d9c00b4e0f4b4448036f624688..03234fd3a09907890bf578ccac5e8c4a9caec172 100644 --- a/docs/api/media/record-manager.md +++ b/docs/api/media/record-manager.md @@ -3,9 +3,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|x|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|x|√|√|√| **recorderManager 对象的方法列表** @@ -66,6 +66,10 @@ |:-|:-|:-| |errMsg|String|错误信息| +**注意** + +- 可以通过用户授权API来判断用户是否给应用授予麦克风的访问权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize) + **示例** ```html @@ -116,4 +120,4 @@ export default { } } } -``` \ No newline at end of file +``` diff --git a/docs/api/media/video-context.md b/docs/api/media/video-context.md index 303400fdfae13b1d5f0f9aacd62e62e4c8e18c8d..9b7f9836dcda7d7faa13e92e384c0fa67a628be1 100644 --- a/docs/api/media/video-context.md +++ b/docs/api/media/video-context.md @@ -3,9 +3,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|x|√|√| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|x|√|√|√| **videoContext 对象的方法列表** @@ -13,7 +13,7 @@ |:-|:-|:-| |play|无|播放| |pause|无|暂停| -|seek|position|跳转到指定位置,单位 s| +|seek|position|跳转到指定位置,单位 s| |stop||停止视频,仅`微信小程序平台`支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/VideoContext.stop.html)| |sendDanmu|danmu|发送弹幕,danmu 包含两个属性 text, color| |playbackRate|rate|设置倍速播放,支持的倍率有 0.5/0.8/1.0/1.25/1.5| @@ -22,6 +22,9 @@ |showStatusBar|无|显示状态栏,仅在iOS全屏下有效| |hideStatusBar|无|隐藏状态栏,仅在iOS全屏下有效| +**注意:** +- app-nvue 平台 2.2.5(alpha)+ 支持 uni.createVideoContext(videoId, this) +- app-nvue 平台 2.2.5(alpha)- 需要同时设置组件属性id和ref ````,或者直接使用 ref,例如 ``this.$refs.video1`` **示例** @@ -110,4 +113,4 @@ export default { } } } -``` \ No newline at end of file +``` diff --git a/docs/api/media/video.md b/docs/api/media/video.md index 9426a12147abb05e3e6500bd34492f4784338893..30c22c84235db7bed23c8ec054372c7c1f720f93 100644 --- a/docs/api/media/video.md +++ b/docs/api/media/video.md @@ -3,9 +3,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|√| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|√|√| **OBJECT 参数说明** @@ -32,6 +32,7 @@ **注意:** * 文件的临时路径,在应用本次启动期间可以正常使用,如需持久保存,需在主动调用 [uni.saveFile](api/file/file?id=savefile),在应用下次启动时才能访问得到。 * camera 部分 Android 手机下由于系统 ROM 不支持无法生效,打开拍摄界面后可操作切换 +* 可以通过用户授权API来判断用户是否给应用授予相册或摄像头的访问权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize) * App下如需进一步压缩视频大小,可以在插件市场搜索[视频压缩](http://ext.dcloud.net.cn/search?q=%E8%A7%86%E9%A2%91%E5%8E%8B%E7%BC%A9)插件 **示例** @@ -70,9 +71,9 @@ export default { **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|x|√|√| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|x|√|√|√| **OBJECT 参数说明** @@ -89,6 +90,10 @@ export default { |:-|:-|:-| |errMsg|String|调用结果| +**注意** + +- 可以通过用户授权API来判断用户是否给应用授予相册写入权限[https://uniapp.dcloud.io/api/other/authorize](https://uniapp.dcloud.io/api/other/authorize) + **示例** ```html @@ -125,4 +130,4 @@ export default { } } } -``` \ No newline at end of file +``` diff --git a/docs/api/other/advertisement.md b/docs/api/other/advertisement.md index aac6e024fc4377533980742bd71ba3c357f86b66..65d2c0d6aaee76e3df2763d69d980553b5bf5ea9 100644 --- a/docs/api/other/advertisement.md +++ b/docs/api/other/advertisement.md @@ -1,7 +1,12 @@ #### 广告 -仅微信小程序平台、App平台支持 +广告API -微信小程序平台实现参考:[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.createRewardedVideoAd.html) +广告能力在不同小程序端实现不同,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。 -App平台实现参考:[DCloud广告联盟](http://ask.dcloud.net.cn/article/13084) \ No newline at end of file +- App平台:无需编码,在打包App时可直接勾选广告位,[详见](https://dcloud.io/dad.html) +- 微信小程序:[规范文档](https://developers.weixin.qq.com/miniprogram/dev/api/wx.createRewardedVideoAd.html) +- 百度小程序:有组件但无API +- 支付宝小程序:不支持此能力 +- 头条小程序:仅小游戏可用,小程序不可用,不适用于uni-app +- QQ小程序:[规范文档](https://q.qq.com/wiki/develop/miniprogram/API/ad/qq.createRewardedVideoAd.html) \ No newline at end of file diff --git a/docs/api/other/authentication.md b/docs/api/other/authentication.md index 674e95000c593d6f3da4addddcdc2a6f5a00538e..b23922f57b21697d64e963335d236d16cdaddf4f 100644 --- a/docs/api/other/authentication.md +++ b/docs/api/other/authentication.md @@ -1,13 +1,15 @@ - -#### 生物认证 + +#### 生物认证 生物认证,又称活体检测。它包含指纹识别、人脸识别这两部分。即通过人体身体特征来进行身份认证识别。 - -各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。 - + +各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。 + ##### 微信小程序 -支持指纹和人脸识别两部分,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.startSoterAuthentication.html) - +支持指纹和人脸识别两部分,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.startSoterAuthentication.html) + +如果使用腾讯云的SDK,可参考[网友分享](https://segmentfault.com/a/1190000020102601) + ##### App平台 - 指纹:html5plus已经内置指纹API,[规范详情](http://www.html5plus.org/doc/zh_cn/fingerprint.html)。在插件市场有一个封装好的微信和App的指纹识别插件:[https://ext.dcloud.net.cn/plugin?id=358](https://ext.dcloud.net.cn/plugin?id=358) - 人脸识别:app引擎未内置,需要安装原生插件,详见[插件市场人脸识别插件](https://ext.dcloud.net.cn/search?q=%E4%BA%BA%E8%84%B8%E8%AF%86%E5%88%AB) @@ -16,4 +18,4 @@ 只支持人脸识别,[规范详情](https://docs.alipay.com/mini/api/alipay-face-verify) ##### 百度小程序 -只支持人脸识别,[规范详情](https://smartprogram.baidu.com/docs/develop/api/ai_face/#swan-ai-faceDetect/) \ No newline at end of file +只支持人脸识别,[规范详情](https://smartprogram.baidu.com/docs/develop/api/ai_face/#swan-ai-faceDetect/) diff --git a/docs/api/other/authorize.md b/docs/api/other/authorize.md index ddbb01b58e5c342d4f0339d1a78d1d1772cc0065..cd96d18f8cd2494deaaf587759b8cac2ce9217c9 100644 --- a/docs/api/other/authorize.md +++ b/docs/api/other/authorize.md @@ -4,10 +4,12 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| |:-:|:-:|:-:|:-:|:-:|:-:|:-:| |x|x|√|x|√|√|√| - + +注意:App平台的授权判断方式,另见:[https://ext.dcloud.net.cn/plugin?id=594](https://ext.dcloud.net.cn/plugin?id=594) + **OBJECT 参数说明** |参数|类型|必填|说明| diff --git a/docs/api/other/choose-address.md b/docs/api/other/choose-address.md index 076849e406cf3e2d947eebc142c61aad7c8d744f..c554d053890c3e9acb6a9b58db34ed27dcdeb1df 100644 --- a/docs/api/other/choose-address.md +++ b/docs/api/other/choose-address.md @@ -4,9 +4,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|√|x| **OBJECT参数说明** diff --git a/docs/api/other/get-extconfig.md b/docs/api/other/get-extconfig.md index 5a46ff914bb3a31584de52e068c682b6637d1594..7bce3d799b1bcd818267dd60e4ca4d18c0634d1d 100644 --- a/docs/api/other/get-extconfig.md +++ b/docs/api/other/get-extconfig.md @@ -4,9 +4,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|√|x| **OBJECT参数说明** @@ -45,9 +45,9 @@ if (uni.getExtConfig) { **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|√|x| **返回值(Object)** diff --git a/docs/api/other/getAccountInfoSync.md b/docs/api/other/getAccountInfoSync.md index 626bd2a53fa4767358b88bf84626a42585437589..08c8fda74368ae15663b80f511a4807e2ef672a6 100644 --- a/docs/api/other/getAccountInfoSync.md +++ b/docs/api/other/getAccountInfoSync.md @@ -5,9 +5,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|√| **返回值** diff --git a/docs/api/other/invoice-title.md b/docs/api/other/invoice-title.md index 47ac905c606d30a8d339b2e54e1b30ef9ba62096..71bbe04c21c1484390ee7c4e96476e9020e4d7e0 100644 --- a/docs/api/other/invoice-title.md +++ b/docs/api/other/invoice-title.md @@ -6,9 +6,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|x| **OBJECT参数说明** diff --git a/docs/api/other/open-miniprogram.md b/docs/api/other/open-miniprogram.md index 016341ec4a1309c3808589ed9965f14c2645aa82..7374036259d047e126327d38dc1a9cf10826c8a5 100644 --- a/docs/api/other/open-miniprogram.md +++ b/docs/api/other/open-miniprogram.md @@ -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/zwi8gx)|[百度小程序](https://smartprogram.baidu.com/docs/develop/api/open_smartprogram/#swan-navigateToSmartProgram/)|[头条小程序](https://developer.toutiao.com/docs/open/navigateToMiniProgram.html)|[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/docs/open/navigateToMiniProgram.html)|[QQ小程序](https://q.qq.com/wiki/develop/miniprogram/API/open_port/port_change.html#qq-navigatetominiprogram)| |:-:|:-:|:-:|:-:|:-:|:-:|:-:| |x(见下)|x|√|√|√|√(1.15.0+)|√| diff --git a/docs/api/other/set-enable-debug.md b/docs/api/other/set-enable-debug.md index 9a22fe71efa9212bed14b39982be2bac46b34154..3053a9a89e975ff206e381946079bf79c6f59d16 100644 --- a/docs/api/other/set-enable-debug.md +++ b/docs/api/other/set-enable-debug.md @@ -4,9 +4,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|√| **OBJECT说明** diff --git a/docs/api/other/template.md b/docs/api/other/template.md index 97a34ddfec6c822ae346ccf3530a5596c42cb6a9..087a25dca667f38a8384c637cd2b8d96e38060d3 100644 --- a/docs/api/other/template.md +++ b/docs/api/other/template.md @@ -4,9 +4,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|x| **请求地址** @@ -66,9 +66,9 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/templateadd?access_tok **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|x| **请求地址** ``` @@ -120,9 +120,9 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/templatedel?access_tok **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|x| **请求地址** @@ -229,9 +229,9 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/libraryget?access_toke **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|x| **请求地址** @@ -318,9 +318,9 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/librarylist?access_tok **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|x| **请求地址** @@ -416,9 +416,9 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/templatelist?access_to **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|x| **请求地址** @@ -549,9 +549,9 @@ POST https://openapi.baidu.com/rest/2.0/smartapp/template/templatedel?access_tok **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|x|√|x|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|x|√|x|x|x| **请求地址** diff --git a/docs/api/other/update.md b/docs/api/other/update.md index 71ae914fa7a32d77dddf8aa663641521aa579755..4acc78c2ecc9960f3b6b7afd89ccf12bc9c63754 100644 --- a/docs/api/other/update.md +++ b/docs/api/other/update.md @@ -8,9 +8,9 @@ App的更新不使用本API,另见文档: **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|√|√|√|√| **updateManager 对象的方法列表:** diff --git a/docs/api/plugins/login.md b/docs/api/plugins/login.md index 37ebb9d11cc4ed85906110d36045d1ef44475310..e698e1a8a7c4040a03742890b13b5e713320045b 100644 --- a/docs/api/plugins/login.md +++ b/docs/api/plugins/login.md @@ -3,9 +3,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|√|√|√|√| H5平台登陆注意事项: - 微信内嵌浏览器运行H5版时,可通过js sdk实现微信登陆,需要引入一个单独的js,[详见](https://ask.dcloud.net.cn/article/35380) @@ -56,9 +56,9 @@ uni.login({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|√|√| |属性|类型|必填|说明| |:-|:-|:-|:-| @@ -73,9 +73,9 @@ uni.login({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|√|√|√|√| **注意:** 微信小程序端,在用户未授权过的情况下调用此接口,不会出现授权弹窗,会直接进入 fail 回调(详见[《微信小程序公告》](https://developers.weixin.qq.com/community/develop/doc/0000a26e1aca6012e896a517556c01))。在用户已授权的情况下调用此接口,可成功获取用户信息。 diff --git a/docs/api/plugins/payment.md b/docs/api/plugins/payment.md index 77cb82b0a7bae1cc755975b4e327df5f42ca2034..167742d51d92b1a62988564119290d7031136467 100644 --- a/docs/api/plugins/payment.md +++ b/docs/api/plugins/payment.md @@ -11,9 +11,9 @@ uni.requestPayment是一个统一各平台的客户端支付API,不管是在 **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|[说明](/api/plugins/payment?id=h5-payment)|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|[说明](/api/plugins/payment?id=h5-payment)|√|√|√|√|√| **OBJECT 参数说明** @@ -113,6 +113,9 @@ uni.requestPayment是一个统一各平台的客户端支付API,不管是在 - Q:App端如何集成其他支付SDK - A:使用原生插件方式,可以集成如paypal或三方聚合支付sdk,原生插件开发文档见[https://ask.dcloud.net.cn/article/35428](https://ask.dcloud.net.cn/article/35428)。开发之前可以先去[插件市场](https://ext.dcloud.net.cn/)看下有没有做好的。 +- Q:Appstore审核报PGPay SDK不允许上架的问题 +- A:数字类产品(比如购买会员等不需要配送实物的商品),Apple规定必须使用苹果IAP应用内支付,给Apple分成30%。打包的时候不要勾选微信或支付宝等其他支付方式。如果你提交的包里包含了微信支付宝等支付的sdk,即使没使用,Appstore也会认为你有隐藏方式,以后会绕过iap,不给Apple分成,因此拒绝你的App上线。云打包时,manifest里选上支付模块,但sdk配置里去掉微信支付和支付宝支付。很多开发者的Android版是包含微信和支付宝支付的,此时注意分开判断。 + **示例** App 支付 @@ -262,4 +265,4 @@ uni.requestPayment({ } } -``` \ No newline at end of file +``` diff --git a/docs/api/plugins/provider.md b/docs/api/plugins/provider.md index 0069bfeece6ce778464ee8fa153daa5a8d08ffbc..89dc2e0fa6d9303d9be2c5bdadd4a9f9ab9c34e2 100644 --- a/docs/api/plugins/provider.md +++ b/docs/api/plugins/provider.md @@ -1,5 +1,5 @@ ### uni.getProvider(OBJECT) -获取服务供应商。 +获取服务供应商。仅App平台支持。 在App平台,可用的服务商,是打包环境中配置的服务商,与手机端安装了什么app没有关系。 diff --git a/docs/api/plugins/push.md b/docs/api/plugins/push.md index c72e34bc0101857e1de621e8c8dc2f7cb108ea31..2f6f418e6acf484710ff937e0542d9db19a8dc97 100644 --- a/docs/api/plugins/push.md +++ b/docs/api/plugins/push.md @@ -7,6 +7,10 @@ uni push 推送的开发API文档:[https://www.html5plus.org/doc/zh_cn/push.html](https://www.html5plus.org/doc/zh_cn/push.html) +插件市场有很多推送相关的插件,包括检查应用是否被授予推送权限([参考](https://ext.dcloud.net.cn/plugin?id=594))、开启关闭推送服务([参考](https://ext.dcloud.net.cn/plugin?id=727))、自定义iOS推送铃声([参考](https://ext.dcloud.net.cn/plugin?id=690)) + +插件市场也提供了其他三方推送方案,但注意unipush是推送成功率更高的解决方案,并且免费使用,更推荐使用。 + - 小程序平台 小程序平台的类似概念叫做`模板消息`。 diff --git a/docs/api/plugins/share.md b/docs/api/plugins/share.md index 8d984f67f344c61aa301aaa622baef608b0e5731..38c3cecfcc6de04bd6ac07a7254af210ed6795d0 100644 --- a/docs/api/plugins/share.md +++ b/docs/api/plugins/share.md @@ -188,6 +188,7 @@ uni.share({ ```javascript uni.share({ provider: 'weixin', + scene: "WXSceneSession", type: 5, imageUrl: 'https://img-cdn-qiniu.dcloud.net.cn/uniapp/app/share-logo@3.png', title: '欢迎体验uniapp', diff --git a/docs/api/plugins/voice.md b/docs/api/plugins/voice.md index c563f238dfce30ebccb9a784f469c6f381210617..39a82f7df9b4cffa9ada16da5e49e5a8c68b3a14 100644 --- a/docs/api/plugins/voice.md +++ b/docs/api/plugins/voice.md @@ -1,12 +1,12 @@ -#### voice - -video包括语言识别和语音朗读两部分。 - -仅百度小程序平台、App平台支持,各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。 - -百度小程序平台支持语音识别,参考:[规范详情](https://smartprogram.baidu.com/docs/develop/api/ai_voice/) - -App 平台实现参考: - +#### voice + +voice 包括语言识别和语音朗读两部分。 + +仅百度小程序平台、App平台支持,各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。 + +百度小程序平台支持语音识别,参考:[规范详情](https://smartprogram.baidu.com/docs/develop/api/ai_voice/) + +App 平台实现参考: + - 语音识别:支持科大讯飞语音识别和百度语音识别,云打包的话需要在manifest中勾选模块和App SDK配置,开发规范见:[https://www.html5plus.org/doc/zh_cn/speech.html](https://www.html5plus.org/doc/zh_cn/speech.html),配置文档及讯飞百度的差别见:[https://ask.dcloud.net.cn/article/35059](https://ask.dcloud.net.cn/article/35059) -- 语音朗读:调用科大讯飞进行语音合成、tts朗读,参考[https://ask.dcloud.net.cn/article/1081](https://ask.dcloud.net.cn/article/1081) \ No newline at end of file +- 语音朗读:调用科大讯飞进行语音合成、tts朗读,参考[https://ask.dcloud.net.cn/article/1081](https://ask.dcloud.net.cn/article/1081) diff --git a/docs/api/request/mDNS.md b/docs/api/request/mDNS.md index 0331ef4b012a95965a04e3963f0c40fa085faf02..8717f2ac4d3e164ac8bd74c1532ecca3a7ffdbb5 100644 --- a/docs/api/request/mDNS.md +++ b/docs/api/request/mDNS.md @@ -1,4 +1,5 @@ #### mDNS 服务 - 仅微信小程序平台支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.stopLocalServiceDiscovery.html) + - 微信小程序平台支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.stopLocalServiceDiscovery.html) + - App端可在插件市场搜索相关插件[mDNS](https://ext.dcloud.net.cn/search?q=mdns) diff --git a/docs/api/request/request.md b/docs/api/request/request.md index 61bc20d8e265ec562db99c9e08883e07cc9ac675..610b242575f875a611ec4b77e5c61b6189b9311b 100644 --- a/docs/api/request/request.md +++ b/docs/api/request/request.md @@ -13,6 +13,7 @@ |method|String|否|GET|有效值详见下方说明|| |dataType|String|否|json |如果设为 json,会尝试对返回的数据做一次 JSON.parse|| |responseType|String|否|text |设置响应的数据类型。合法值:text、arraybuffer|5+App和支付宝小程序不支持| +|sslVerify|Boolean|否|true|验证 ssl 证书|仅5+App安卓端支持(HBuilderX 2.3.3+)| |success|Function|否||收到开发者服务成功返回的回调函数|| |fail|Function|否||接口调用失败的回调函数|| |complete|Function|否||接口调用结束的回调函数(调用成功、失败都会执行)| | @@ -87,8 +88,8 @@ requestTask.abort(); |方法|参数|说明| |:-|:-|:-| |abort||中断请求任务| -|offHeadersReceived||取消监听 HTTP Response Header 事件,仅`微信小程序平台`支持,[文档详情](https://developers.weixin.qq.com/miniprogram/dev/api/RequestTask.offHeadersReceived.html)| -|onHeadersReceived||监听 HTTP Response Header 事件。会比请求完成事件更早,仅`微信小程序平台`支持,[文档详情](https://developers.weixin.qq.com/miniprogram/dev/api/RequestTask.onHeadersReceived.html)| +|offHeadersReceived||取消监听 HTTP Response Header 事件,仅`微信小程序平台`支持,[文档详情](https://developers.weixin.qq.com/miniprogram/dev/api/RequestTask.offHeadersReceived.html)| +|onHeadersReceived||监听 HTTP Response Header 事件。会比请求完成事件更早,仅`微信小程序平台`支持,[文档详情](https://developers.weixin.qq.com/miniprogram/dev/api/RequestTask.onHeadersReceived.html)| **示例** @@ -114,9 +115,14 @@ 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) +- 注意非 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)) - [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并保证手机能连接电脑网络 -- debug 模式,安卓端暂时无法获取响应头,url中含有非法字符(如未编码为%20的空格)时会请求失败 \ No newline at end of file +- localhost、127.0.0.1等服务器地址,只能在电脑端运行,手机端连接时不能访问。请使用标准IP并保证手机能连接电脑网络 +- debug 模式,安卓端暂时无法获取响应头,url中含有非法字符(如未编码为%20的空格)时会请求失败 +- iOS App第一次安装启动后,会弹出是否允许联网的询问框,在用户点击同意前,调用联网API会失败。请注意判断这种情况。比如官方提供的新闻模板示例(HBuilderX新建项目可选择),会判断如果无法联网,则提供一个错误页,提示用户设置网络及下拉刷新重试。 +- 良好体验的App,还会判断当前是否处于飞行模式([参考](https://ext.dcloud.net.cn/plugin?id=594))、是wifi还是3G([参考](https://uniapp.dcloud.io/api/system/network)) +- 部分安卓设备,真机运行或debug模式下的网络,低于release模式很多。 +- 使用一些比较小众的证书机构(如:CFCA OV OCA)签发的 ssl 证书在安卓设备请求会失败,因为这些机构的根证书不在系统内置根证书库,可以更换其他常见机构签发的证书(如:Let's Encrypt),或者配置 sslVerify 为 false 关闭 ssl 证书验证(不推荐)。 +- 单次网络请求数据量建议控制在50K以下(仅指json数据,不含图片),过多数据应分页获取,以提升应用体验。 diff --git a/docs/api/request/websocket.md b/docs/api/request/websocket.md index dd50f5f0ac14c041244e66c743f8a54fd69dd813..9a1e7dc66e2202cfb2c3f9cee68efbc82195c8d4 100644 --- a/docs/api/request/websocket.md +++ b/docs/api/request/websocket.md @@ -50,8 +50,12 @@ var socketTask = uni.connectSocket({ **注意事项** - 网络请求的 ``超时时间`` 可以统一在 ``manifest.json`` 中配置 [networkTimeout](/collocation/manifest?id=networktimeout)。 -- App目前不支持 ``ArrayBuffer`` 类型的数据收发。可以使用 [plus-websocket](https://ext.dcloud.net.cn/plugin?id=647) 插件替代。 -- 自定义组件模式下所有 `vue` 页面只能使用一个 `websocket` 连接。可以使用 [plus-websocket](https://ext.dcloud.net.cn/plugin?id=647) 插件替代。 +- App平台,2.2.6以下的版本,不支持 ``ArrayBuffer`` 类型的数据收发。老版本不愿升级也可以使用 [plus-websocket插件](https://ext.dcloud.net.cn/plugin?id=647) 插件替代。 +- App平台自定义组件模式下,以及支付宝小程序下,所有 `vue` 页面只能使用一个 `websocket` 连接。App下可以使用 [plus-websocket](https://ext.dcloud.net.cn/plugin?id=647) 插件替代实现多链接。App平台,2.2.6+起支持多个socket链接,数量没有限制。 +- 微信小程序平台1.7.0 及以上版本,最多可以同时存在5个WebSocket 连接。老版本只支持一个socket连接 +- 百度小程序平台自基础库版本 1.9.4 及以后支持多个socket连接。老版本只支持一个socket连接 +- QQ小程序平台最多支持同时存在5个socket链接 + ### uni.onSocketOpen(CALLBACK) 监听WebSocket连接打开事件。 diff --git a/docs/api/router.md b/docs/api/router.md index 0340c73b4a6cdee00945bbcf4a131da1c56c997a..168963b3fa9f04259b4eac202e0efbbd08eae9e6 100644 --- a/docs/api/router.md +++ b/docs/api/router.md @@ -176,8 +176,13 @@ Tips: * 页面底部的 ``tabBar`` 由页面决定,即只要是定义为 ``tabBar`` 的页面,底部都有 ``tabBar``。 * 不能在 ```App.vue``` 里面进行页面跳转。 + +**参考事项** +- 页面路由拦截和管理,插件市场有很多封装好的工具类,搜索[路由](https://ext.dcloud.net.cn/search?q=%E8%B7%AF%E7%94%B1) + + #### 窗口动画@animation -> 本API仅App端支持。小程序自身不支持自定义动画。H5的窗体动画可使用常规单页动画处理方案,见[H5下单页动画示例](https://ext.dcloud.net.cn/plugin?id=659&tdsourcetag=s_pctim_aiomsg) +> 本API仅App支持。小程序自身不支持自定义动画。H5的窗体动画可使用常规单页动画处理方案,见[H5下单页动画示例](https://ext.dcloud.net.cn/plugin?id=659&tdsourcetag=s_pctim_aiomsg) 窗口的显示/关闭动画效果,支持在 API、组件、pages.json 中配置,优先级为:`API = 组件 > pages.json`。 @@ -228,10 +233,10 @@ pages.json 中配置的是窗口显示的动画 |slide-in-left|slide-out-left|新窗体从左侧进入| |slide-in-top|slide-out-top|新窗体从顶部进入| |slide-in-bottom|slide-out-bottom|新窗体从底部进入| +|pop-in|pop-out|新窗体从左侧进入,且老窗体被挤压而出| |fade-in|fade-out|新窗体从透明到不透明逐渐显示| |zoom-out|zoom-in|新窗体从小到大缩放显示| |zoom-fade-out|zoom-fade-in|新窗体从小到大逐渐放大并且从透明到不透明逐渐显示| -|pop-in|pop-out|新窗体从左侧进入,且老窗体被挤压而出| |none|none|无动画| 详细的窗口动画说明,请参考: @@ -239,5 +244,7 @@ pages.json 中配置的是窗口显示的动画 - 窗口显示的动画:[AnimationTypeShow](http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.AnimationTypeShow) - 窗口关闭的动画:[AnimationTypeClose](http://www.html5plus.org/doc/zh_cn/webview.html#plus.webview.AnimationTypeClose) -**参考事项** -- 页面路由拦截和管理,插件市场有很多封装好的工具类,搜索[路由](https://ext.dcloud.net.cn/search?q=%E8%B7%AF%E7%94%B1) +**注意** +- 纯nvue项目(render为native),窗体动画默认进入动画为popin,返回为pop-out。如果想修改动画类型,只能通过uni.navigateTo API修改,在组件或pages.json里配置动画类型无效 +- 非纯nvue项目,App端窗体动画,默认进入动画为slider-in-right,默认返回动画为pop-out + diff --git a/docs/api/system/batteryInfo.md b/docs/api/system/batteryInfo.md index 0aaed2f4a4e01be83565904d4197b4a5091ea5cf..b535f36ab804ed9b18eb1f67ece827224bde9c8c 100644 --- a/docs/api/system/batteryInfo.md +++ b/docs/api/system/batteryInfo.md @@ -6,3 +6,5 @@ - 百度小程序平台:[规范详情](https://smartprogram.baidu.com/docs/develop/api/device_battery/#swan-getBatteryInfo/) - 支付宝小程序平台:[规范详情](https://docs.alipay.com/mini/api/nrnziy) - QQ小程序平台:[规范详情](https://q.qq.com/wiki/develop/miniprogram/API/equipment/ibeacon_battery.html) +- App平台:使用 Native.js,[参考](https://ask.dcloud.net.cn/article/992) +- H5平台:使用 navigator.battery API diff --git a/docs/api/system/capture-screen.md b/docs/api/system/capture-screen.md index 99acedbfec55974b1eee47b6d756c3e52417787c..17bdd4d6f637de499ebe1c370758a0de6cdd1cda 100644 --- a/docs/api/system/capture-screen.md +++ b/docs/api/system/capture-screen.md @@ -6,7 +6,7 @@ |5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| |:-:|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|√|√|x|√| +|x|x|√|√|√|√|√| **CALLBACK返回参数:** diff --git a/docs/api/system/contact.md b/docs/api/system/contact.md index a305dacd1e87e3f662d3935290248a776768d634..f141afd0fe45f4b7634b207fef30a48d21769831 100644 --- a/docs/api/system/contact.md +++ b/docs/api/system/contact.md @@ -5,7 +5,7 @@ App平台提供了更多通讯录相关API,包括读取联系人,详见:[h **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| |:-:|:-:|:-:|:-:|:-:|:-:|:-:| |√|x|√|√|√|x|x| @@ -78,5 +78,5 @@ uni.addPhoneContact({ **注意** -- 手机OS对通讯录访问有严格的权限限制和要求。在小程序中使用时,需注意微信等小程序载体本身已经获得了手机端的授权许可。 +- 手机OS对通讯录访问有严格的权限限制和要求。在小程序中使用时,需注意微信等小程序载体本身已经获得了手机端的授权许可。App端获取通讯录相关权限,参考[https://ext.dcloud.net.cn/plugin?id=594](https://ext.dcloud.net.cn/plugin?id=594) - 打包App时,云打包则需要在manifest中配置权限和模块,离线打包需自行在原生工程中配置。 diff --git a/docs/api/system/deviceMotion.md b/docs/api/system/deviceMotion.md index 371f768c43a4000997731141abff4bd0a2f53439..81960373ba8e0b566b357ee2a79ded4f921374fb 100644 --- a/docs/api/system/deviceMotion.md +++ b/docs/api/system/deviceMotion.md @@ -2,4 +2,4 @@ 仅微信小程序平台支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/device/motion/wx.startDeviceMotionListening.html) -在App平台,也可以通过监听窗体大小变化onResize来实现此类需求。[详见](https://uniapp.dcloud.io/collocation/frame/lifetime?id=%e9%a1%b5%e9%9d%a2%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f) +在App平台,也可以通过监听窗体大小变化onResize来实现此类需求。[详见](https://uniapp.dcloud.io/collocation/frame/lifecycle?id=%e9%a1%b5%e9%9d%a2%e7%94%9f%e5%91%bd%e5%91%a8%e6%9c%9f) diff --git a/docs/api/ui/animation.md b/docs/api/ui/animation.md index 049b0338eb8e06da9fd314707ded59ce5a3af432..b0b619a7e5fe941c5092de505fa45b1c826abe29 100644 --- a/docs/api/ui/animation.md +++ b/docs/api/ui/animation.md @@ -4,9 +4,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|HBuilderX 2.0.4+|√|√|√|√| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|HBuilderX 2.0.4+|√|√|√|√|√| **注意:** - export 方法每次调用后会清掉之前的动画操作 diff --git a/docs/api/ui/bgcolor.md b/docs/api/ui/bgcolor.md index cebb9c4b7baba5ab9e2842d5f9fc42e6286d6f0c..637b86a507682c414d0be8a3fe02cf478b4f9ca6 100644 --- a/docs/api/ui/bgcolor.md +++ b/docs/api/ui/bgcolor.md @@ -4,9 +4,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|√| **参数说明** @@ -35,9 +35,9 @@ uni.setBackgroundColor({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|x|√|x|√|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|x|√|x|√|x|√| **参数说明** diff --git a/docs/api/ui/font.md b/docs/api/ui/font.md index c148346be2395f3bfd5ee730e35efd2223bb68cc..617a83e5c71561199e49b4aac89a84817ab18830 100644 --- a/docs/api/ui/font.md +++ b/docs/api/ui/font.md @@ -12,9 +12,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|1.9.0+ [自定义组件编译模式](https://ask.dcloud.net.cn/article/35843)|x|基础库 2.1.0+|x|x|x| +|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|1.9.0+ [自定义组件编译模式](https://ask.dcloud.net.cn/article/35843)|x|基础库 2.1.0+|x|x|x|x| **参数说明** diff --git a/docs/api/ui/menuButton.md b/docs/api/ui/menuButton.md index 3833cef7af9ba1c995d5383cd916e6082e7681f4..e307b7325fcf9303024157a1d08ab2b67754def5 100644 --- a/docs/api/ui/menuButton.md +++ b/docs/api/ui/menuButton.md @@ -2,12 +2,30 @@ 在小程序平台,如果原生导航栏被隐藏,仍然在右上角会有一个悬浮按钮,微信下也被称为胶囊按钮。本API用于获取小程序下该菜单按钮的布局位置信息,方便开发者布局顶部内容时避开该按钮。 -坐标信息以屏幕左上角为原点。 +坐标信息以屏幕左上角为原点。 + +**平台差异说明** + +|5+App |H5 |微信小程序 |支付宝小程序 |百度小程序 |头条小程序 |QQ小程序 | +|:-: |:-:|:-: |:-: |:-: |:-: |:-: | +|x |x |√ |x |√ |√ |√ | + +**返回值说明** + +|属性 |类型 |说明 | +|width |number |宽度,单位:px | +|height |number |高度,单位:px | +|top |number |上边界坐标,单位:px | +|right |number |右边界坐标,单位:px | +|bottom |number |下边界坐标,单位:px | +|left |number |左边界坐标,单位:px | + +**示例** + +```javascript + let menuButtonInfo = uni.getMenuButtonBoundingClientRect() +``` -各平台开发方式暂未统一,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。 +**注意** -- 微信小程序:[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/wx.getMenuButtonBoundingClientRect.html) -- 百度小程序:[规范详情](https://smartprogram.baidu.com/docs/develop/api/menu_info/) - 支付宝小程序:其逻辑与微信小程序不同,它提供了菜单点击后按钮的自定义功能,可以选择显示那些系统按钮,[规范详情](https://docs.alipay.com/mini/api/optionmenuitem) -- 头条小程序:[规范详情](https://developer.toutiao.com/docs/game/ui/menu/tt.getMenuButtonBoundingClientRect.html) -- QQ小程序:[规范详情](https://q.qq.com/wiki/develop/game/API/interface/menu.html#qq-getmenubuttonboundingclientrect) diff --git a/docs/api/ui/navigationbar.md b/docs/api/ui/navigationbar.md index 210fc81d9680e80983f6188597b4a12d0c4819cf..f14cde54cbbe995b8cbd141abef1b514c355f149 100644 --- a/docs/api/ui/navigationbar.md +++ b/docs/api/ui/navigationbar.md @@ -26,9 +26,9 @@ uni.setNavigationBarTitle({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明** @@ -82,9 +82,11 @@ uni.setNavigationBarColor({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|√|√|√|√|x|√| + +App平台调用此API时会在屏幕中间悬浮显示loading **OBJECT参数说明** @@ -106,9 +108,11 @@ uni.showNavigationBarLoading() **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|x|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|x|√|√|√|√|x|√| + +App平台调用此API时会关闭屏幕中间悬浮显示的loading **OBJECT参数说明** diff --git a/docs/api/ui/nodes-info.md b/docs/api/ui/nodes-info.md index ffcd0a7dbc90bdfb5ac8426a0083cb0fca3fa297..4efedaac9fccfb3633e68d8044ad7dfa056e78e0 100644 --- a/docs/api/ui/nodes-info.md +++ b/docs/api/ui/nodes-info.md @@ -108,9 +108,9 @@ query.select('#id').boundingClientRect(data => { **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|x|√|x|x|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|x|√|x|x|x|√| **callback 返回参数** @@ -141,4 +141,52 @@ view.boundingClientRect(data => { console.log("得到布局位置信息" + JSON.stringify(data)); console.log("节点离页面顶部的距离为" + data.top); }).exec(); -``` \ No newline at end of file +``` + +**注意** +- nvue 暂不支持 uni.createSelectorQuery,暂时使用下面的方案 + +``` + + + +``` diff --git a/docs/api/ui/pulldown.md b/docs/api/ui/pulldown.md index f3d2045aec2d979586fcb4a9706e9d3946cad76f..166a92337865a0ceda836b53b06970ff397a7da1 100644 --- a/docs/api/ui/pulldown.md +++ b/docs/api/ui/pulldown.md @@ -77,7 +77,7 @@ export default { ### FAQ Q:如何暂时禁用掉下拉刷新,待需要的时候再重新开启? -A:`5+App` 平台下可以处理此类场景,详细参考:[uni-app 中实现动态禁用/开启下拉刷新](https://ask.dcloud.net.cn/article/35134) +A:`App` 平台下可以处理此类场景,详细参考:[uni-app 中实现动态禁用/开启下拉刷新](https://ask.dcloud.net.cn/article/35134) Q:自定义title如何让下拉刷新在title之下 A:App和H5端使用circle方式的下拉刷新,设offset在title高度之下。hello uni-app的模板-导航栏中有示例。小程序端无法实现,除非放弃原生下拉刷新,自己模拟下拉刷新,插件市场有类似插件,但性能不如原生下拉刷新。 diff --git a/docs/api/ui/tabbar.md b/docs/api/ui/tabbar.md index f746dfce1178885560f355f4cfb349c8aac0a20c..64a94855f2671d5915c67ee7ae32ace617ff6c95 100644 --- a/docs/api/ui/tabbar.md +++ b/docs/api/ui/tabbar.md @@ -4,9 +4,9 @@ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明:** @@ -37,9 +37,9 @@ uni.setTabBarItem({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明:** @@ -70,9 +70,9 @@ uni.setTabBarStyle({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明:** @@ -89,9 +89,9 @@ uni.setTabBarStyle({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明:** @@ -107,9 +107,9 @@ uni.setTabBarStyle({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明:** @@ -135,9 +135,9 @@ uni.setTabBarBadge({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明:** @@ -153,9 +153,9 @@ uni.setTabBarBadge({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明:** @@ -171,9 +171,9 @@ uni.setTabBarBadge({ **平台差异说明** -|5+App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√|√|√|√|√|x| +|App|H5|微信小程序|支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√|√|√|√|√|x|√| **OBJECT参数说明:** diff --git a/docs/api/ui/window.md b/docs/api/ui/window.md index f3f0c62b3838ee057cc245e9f65bac878aaa75df..4afd970cee0c186e56bba9ab88e931f7849a7e0a 100644 --- a/docs/api/ui/window.md +++ b/docs/api/ui/window.md @@ -5,9 +5,9 @@ **平台差异说明** -|5+App|H5|微信小程序 |支付宝小程序|百度小程序|头条小程序| -|:-:|:-:|:-:|:-:|:-:|:-:| -|√(nvue不支持)|√|√|x|x|x| +|5+App|H5|微信小程序 |支付宝小程序|百度小程序|头条小程序|QQ小程序| +|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +|√(nvue不支持)|√|√|x|x|x|√| **CALLBACK 参数说明** diff --git a/docs/api/worder.md b/docs/api/worder.md deleted file mode 100644 index 9e5b64a96d8d57b7accab55a8a1276571a0beff1..0000000000000000000000000000000000000000 --- a/docs/api/worder.md +++ /dev/null @@ -1,3 +0,0 @@ -#### Worker - -仅微信小程序平台支持,[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/worker/wx.createWorker.html) \ No newline at end of file diff --git a/docs/api/worker.md b/docs/api/worker.md new file mode 100644 index 0000000000000000000000000000000000000000..5c6ae8040b90c9cd69b8527566a74776145cdfbb --- /dev/null +++ b/docs/api/worker.md @@ -0,0 +1,7 @@ +#### Worker + +目前需分平台编写 + +- 微信小程序:[规范详情](https://developers.weixin.qq.com/miniprogram/dev/api/worker/wx.createWorker.html) +- 头条小程序:[规范详情](https://developer.toutiao.com/docs/game/worker/tt.createWorker.html) +- QQ小程序:[规范详情](https://q.qq.com/wiki/develop/miniprogram/API/worker/worker.html) \ No newline at end of file diff --git a/docs/case.md b/docs/case.md index 5c1929777e7a6bf32b6b6f6628a4c8efd520f770..e9c0975420ef71ee15185034571f63c7849a3e14 100644 --- a/docs/case.md +++ b/docs/case.md @@ -1,11 +1,11 @@ -uni-app编译到App时,使用了DCloud的5+App引擎,该引擎跨iOS和Android,拥有众多案例,上线4年来产生几十万个App,有2亿手机用户在使用基于5+引擎开发的应用。详见[https://dcloud.io/case/](https://dcloud.io/case/) +如特别关心App端案例,注意uni-app编译到App时,使用了DCloud的5+App引擎,拥有众多案例(包括中国邮政、中国工商、湖北银行、360等),有2亿手机用户在使用基于5+引擎开发的应用。详见[https://dcloud.io/case/](https://dcloud.io/case/) -uni-app已经有几十万开发者,创建了几十万个项目,是开发者数量和案例最丰富的多端开发框架。 -我们相信还有更多优秀案例,没有被我们采集到,欢迎大家到[项目案例征集](//github.com/dcloudio/uni-app/issues/6)提交。 +uni-app已经有几十万开发者,是开发者数量和案例最丰富的多端开发框架。 +我们相信还有更多优秀案例,没有被我们采集到,欢迎大家到[项目案例征集](https://github.com/dcloudio/uni-app/issues/6)提交。 ### 官方示例 -Hello uni-app:演示uni-app框架的组件、接口、模板,可以使用手机扫描下方App码下载iOS、Android原生安装包,也可以使用微信扫描小程序码,体验uni-app的小程序版本。本项目源码在HBuilderX中新建项目可获得。 +Hello uni-app:演示uni-app框架的组件、接口、模板,可以使用手机扫描下方App码下载iOS、Android原生安装包,也可以使用微信扫描小程序码,体验uni-app的小程序版本。本项目源码可在HBuilderX中新建项目获得,也可从[github](https://github.com/dcloudio/hello-uniapp)上获取。
    @@ -50,7 +50,7 @@ uni-app已经有几十万开发者,创建了几十万个项目,是开发者 开源中国: 中文开源技术交流社区,提供最新的开源软件资讯。 @@ -145,6 +145,8 @@ uni-app已经有几十万开发者,创建了几十万个项目,是开发者 **极志愿:**专业高考志愿填报。**多端获客典型案例,1个月获得400万用户**,[详见报道](https://mp.weixin.qq.com/s?__biz=MzU3NTU5NDc0NA==&mid=2247491214&idx=1&sn=7e334d079146d9e31cea407f45bd8624&chksm=fd219719ca561e0f9a85b30017618eaf9551b46cdd6ecdf856bc4e47aee4ca93767fcf23147f&mpshare=1&scene=1&srcid=0713VwAOIuRllzMB6syoQssb&key=15a2b72b2464b4fe73325967f733ac332583d5db37f1812c63613c083a8f5921bca2ada2140d45e07657b062dc451f27cc48fe4fd298f6456f300895a90bd471480afdc2c8dc5a45254fb1dc48d3b79a&ascene=1&uin=MTkzNjMxMzU%3D&devicetype=Windows+10&version=62060833&lang=zh_CN&pass_ticket=xW6dPp%2F565g5S8hl1lz%2F8FLQBEzW6KUHyyqyHPdT2nk%3D)。体验方式:[App、微信小程序、百度小程序、H5 官网地址](https://www.jizhy.com/home/) +**中华英才网:** 百度小程序搜索“中华英才网” + **联想集团官方小程序:** 微信小程序搜索 “联想集团” **张亮麻辣烫:** 百度小程序搜索 “张亮麻辣烫” @@ -161,16 +163,20 @@ uni-app已经有几十万开发者,创建了几十万个项目,是开发者 **浙江ETC:**微信小程序搜索 “浙江ETC”、支付宝小程序搜索 “浙江ETC”、[H5](https://issue.zjetc.cn/) +**中国银联云闪付:** App部分页面使用uni-app制作 + **拉卡拉收款宝:** App部分页面使用uni-app制作 **香橙:** 餐馆SaaS服务,手机点餐、下单、排队叫号、营销推广。[官网](http://ivcvc.com) -**波比英语课堂:**幼儿英语启蒙神器培养国际宝宝。[App、小程序通用链接](//m3w.cn/bbyykt) +**围棋战场:**围棋对弈,游戏类的小程序(非小游戏)。[微信小程序码](https://user-images.githubusercontent.com/16237216/65005363-327a9f80-d932-11e9-9be6-68cdbcdfdbf1.png) -**课呱呱:**在线学习好工作。[App、小程序、H5通用链接](//m3w.cn/__uni__b19209a) +**波比英语课堂:**幼儿英语启蒙神器培养国际宝宝。[App、小程序通用链接](http://m3w.cn/bbyykt) **桂聘:** 广西区域招聘,随时随地找工作,[Android和iOS](http://www.guipin.com/jihui/) +**课呱呱:**在线学习好工作。[App、小程序、H5通用链接](http://m3w.cn/__uni__b19209a) + **阿拉运:** 物流行业app,nvue案例,[iOS和Android下载页](http://mb.ialayun.com/) **财金宝:** 多端理财记账工具,[iOS](https://itunes.apple.com/cn/app/%E8%B4%A2%E9%87%91%E5%AE%9D-%E8%AE%B0%E8%B4%A6%E7%90%86%E8%B4%A2%E8%B5%84%E4%BA%A7%E7%AE%A1%E5%AE%B6/id1275489865?mt=8)、[Android](https://android.myapp.com/myapp/detail.htm?apkName=me.caijinbao.jlm)、微信小程序、支付宝小程序搜索“财金宝” @@ -439,6 +445,24 @@ uni-app已经有几十万开发者,创建了几十万个项目,是开发者 **垃圾分类帮帮团:** [微信小程序码地址](https://img-cdn-qiniu.dcloud.net.cn/uniapp/doc/ljfl.png) +**FUNSOLE:**Funsole疯收是一个专业的球鞋交易平台。[App和小程序通用链接](https://m3w.cn/funsole) + +**自由职业助手:**[微信小程序码](https://user-images.githubusercontent.com/34791472/60387434-b6608080-9ad5-11e9-8d5d-bc9f91e740ce.jpg) + +**拾阅草堂:**网络小说。[微信小程序码](https://user-images.githubusercontent.com/12842804/61346867-371ccc00-a88d-11e9-8386-18e27677869c.png) + +**千家找房:**二手房、新房买卖租赁平台。各大应用商城搜索“千家找房”下载APP、[H5](https://m.allqj.com)、[微信小程序二维码](https://user-images.githubusercontent.com/31872878/62843602-a3081e00-bced-11e9-8a2d-3f997be6cacf.png) + +**坤典智慧农场:**体验农村种植、养殖的生活,足不出户就可以租地种植自己的蔬菜了,养殖鸡鸭牛羊,通过视频远程查看。[iOS码](https://user-images.githubusercontent.com/29654065/63156422-3cfdfc80-c047-11e9-8c41-23d298279466.jpg)、[Android码](https://user-images.githubusercontent.com/29654065/63156422-3cfdfc80-c047-11e9-8c41-23d298279466.jpg)、[微信小程序码](https://user-images.githubusercontent.com/29654065/63156422-3cfdfc80-c047-11e9-8c41-23d298279466.jpg)、[H5码](https://user-images.githubusercontent.com/29654065/63156422-3cfdfc80-c047-11e9-8c41-23d298279466.jpg) + +**指动全城:**一个为宝宝选择好产品的线上渠道。[App和小程序通用链接](https://m3w.cn/__uni__6020544) + +**极客修:**专门修手机的小程序。微信、支付宝搜索 极客修 小程序 + +**小米手环4自定义表盘软件:** [Android](https://www.coolapk.com/apk/tech.pingx.watchface)、[H5](http://watchface.pingx.tech/h5/) + +**斗豆侠:**购物App。[iOS](https://apps.apple.com/cn/app/id1395120441)、[Android](https://obs.myhwclouds.com/vipbean/xgyx_guns/APK/yq.apk) + #### 更多小程序案例(可在微信小程序中搜索)@wx-more diff --git a/docs/collocation/App.md b/docs/collocation/App.md new file mode 100644 index 0000000000000000000000000000000000000000..520d2c36e79ee78353e90995fc457b09449ec4e9 --- /dev/null +++ b/docs/collocation/App.md @@ -0,0 +1,69 @@ +`App.vue`是我们的主组件,所有页面都是在`App.vue`下进行切换的,是页面入口文件。 + +在这个文件里,你可以初始化一些通用的组件,调用一些应用生命周期函数。 + +应用生命周期仅可在`App.vue`中监听,在其它页面监听无效。 +### 应用生命周期 + +`uni-app` 支持如下应用生命周期函数: + +|函数名 |说明 | +|:- |:- | +|onLaunch |当`uni-app` 初始化完成时触发(全局只触发一次) | +|onShow |当 `uni-app` 启动,或从后台进入前台显示 | +|onHide |当 `uni-app` 从前台进入后台 | +|onUniNViewMessage|对 `nvue` 页面发送的数据进行监听,可参考 [nvue 向 vue 通讯](/use-weex?id=nvue-向-vue-通讯) | + +在`App.vue`文件里使用生命周期函数,如下: + +```html + +``` + +**注意** +- **应用生命周期仅可在`App.vue`中监听,在其它页面监听无效**。 +- onlaunch里进行页面跳转,如遇白屏报错,请参考[https://ask.dcloud.net.cn/article/35942](https://ask.dcloud.net.cn/article/35942) +- `App.vue` 不能写模板 + +### globalData +小程序有globalData机制,这套机制在uni-app里也可以使用,全端通用。 + +**以下是 App.vue 中定义globalData的相关配置:** + +```html + +``` + +js中操作globalData的方式如下: +`getApp().globalData.text = 'test'` + +如果需要把globalData的数据绑定到页面上,可在页面的onShow页面生命周期里进行变量重赋值。HBuilderX 2.0.3起,nvue页面在`uni-app`编译模式下,也支持onShow。 + +weex编译模式中使用globalData的话,由于weex生命周期不支持onShow,但熟悉5+的话,可利用监听webview的addEventListener show事件实现onShow效果,或者直接使用weex生命周期中的beforeCreate。 + +### 全局样式 +在`App.vue`中,可以一些定义全局通用样式,例如需要加一个通用的背景色,首屏页面渲染的动画等都可以写在App.vue中。 + +**例如:** + +现在有个页面背景是深色在vue页面中,可能会发生新窗体刚开始动画时是灰白色背景,动画结束时才变为深色背景,造成闪屏。这种情况就可以使用全局样式来解决。 +- 造成这种现象的原因是因为webview的背景生效太慢。此时可将样式写在 `App.vue` 里,来加速页面样式的渲染速度。因为`App.vue` 里面的样式是全局样式,每次新开页面会优先加载 `App.vue` 里面的样式,然后加载普通 vue 页面的样式去覆盖`App.vue` 里面的样式。 +- 另外nvue页面不存在此问题,也可以更改为nvue页面。 diff --git a/docs/collocation/_sidebar.md b/docs/collocation/_sidebar.md index d2318a6a80fb67fbad50533a3cdfd85b9ee7ec61..962a950af95695eb1522007a3525b2ade9fc99a3 100644 --- a/docs/collocation/_sidebar.md +++ b/docs/collocation/_sidebar.md @@ -4,10 +4,12 @@ * [package.json](collocation/package.md) * [vue-config.js](collocation/vue-config.md) * [uni.scss](collocation/uni-scss.md) + * [App.vue](collocation/App.md) + * [main.js](collocation/main.md) * 框架接口 * [日志打印](collocation/frame/log.md) * [定时器](collocation/frame/timer.md) - * [生命周期](collocation/frame/lifetime.md) + * [生命周期](collocation/frame/lifecycle.md) * [页面](collocation/frame/window.md) * [页面通讯](collocation/frame/communication.md)
  • diff --git a/docs/collocation/frame/lifetime.md b/docs/collocation/frame/lifecycle.md similarity index 68% rename from docs/collocation/frame/lifetime.md rename to docs/collocation/frame/lifecycle.md index c9041f87533239854f6f8bbca7b46b234ddc14b8..f7fc4b563ad9002ba85659125f9f02d70bb51179 100644 --- a/docs/collocation/frame/lifetime.md +++ b/docs/collocation/frame/lifecycle.md @@ -1,107 +1,147 @@ -### 应用生命周期 - -``uni-app`` 支持如下应用生命周期函数: - -|函数名|说明| -|:-|:-| -|onLaunch|当``uni-app`` 初始化完成时触发(全局只触发一次)| -|onShow|当 ``uni-app`` 启动,或从后台进入前台显示| -|onHide|当 ``uni-app`` 从前台进入后台| -|onUniNViewMessage|对 ``nvue`` 页面发送的数据进行监听,可参考 [nvue 向 vue 通讯](/use-weex?id=nvue-向-vue-通讯)| - -**注意** - -- 应用生命周期仅可在``App.vue``中监听,在其它页面监听无效。 -- onlaunch里进行页面跳转,如遇白屏报错,请参考[https://ask.dcloud.net.cn/article/35942](https://ask.dcloud.net.cn/article/35942) - -### 页面生命周期 - -``uni-app`` 支持如下页面生命周期函数: - -|函数名|说明|平台差异说明|最低版本| -|:-|:-|:-|:-| -|onLoad|监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参),参考[示例](/api/router?id=navigateto)||| -|onShow|监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面||| -|onReady|监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发||| -|onHide|监听页面隐藏||| +### 应用生命周期 + +``uni-app`` 支持如下应用生命周期函数: + +|函数名|说明| +|:-|:-| +|onLaunch|当``uni-app`` 初始化完成时触发(全局只触发一次)| +|onShow|当 ``uni-app`` 启动,或从后台进入前台显示| +|onHide|当 ``uni-app`` 从前台进入后台| +|onUniNViewMessage|对 ``nvue`` 页面发送的数据进行监听,可参考 [nvue 向 vue 通讯](/use-weex?id=nvue-向-vue-通讯)| + +**注意** + +- 应用生命周期仅可在``App.vue``中监听,在其它页面监听无效。 + +**示例代码** +```html + +``` + +### 页面生命周期 + +``uni-app`` 支持如下页面生命周期函数: + +|函数名|说明|平台差异说明|最低版本| +|:-|:-|:-|:-| +|onLoad|监听页面加载,其参数为上个页面传递的数据,参数类型为Object(用于页面传参),参考[示例](/api/router?id=navigateto)||| +|onShow|监听页面显示。页面每次出现在屏幕上都触发,包括从下级页面点返回露出当前页面||| +|onReady|监听页面初次渲染完成。注意如果渲染速度快,会在页面进入动画完成前触发||| +|onHide|监听页面隐藏||| |onUnload|监听页面卸载||| -|onResize|监听窗口尺寸变化|5+App、微信小程序|| -|onPullDownRefresh|监听用户下拉动作,一般用于下拉刷新,参考[示例](api/ui/pulldown)||| -|onReachBottom|页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体见下方注意事项||| -|onTabItemTap|点击 tab 时触发,参数为Object,具体见下方注意事项|微信小程序、百度小程序、H5、5+App(自定义组件模式)|| -|onShareAppMessage|用户点击右上角分享|微信小程序、百度小程序、头条小程序、支付宝小程序|| -|onPageScroll|监听页面滚动,参数为Object||| -|onNavigationBarButtonTap|监听原生标题栏按钮点击事件,参数为Object|5+ App、H5|| -|onBackPress|监听页面返回,返回 event = {from:backbutton、 navigateBack} ,backbutton 表示来源是左上角返回按钮或 android 返回键;navigateBack表示来源是 uni.navigateBack ;详细说明及使用:[onBackPress 详解](http://ask.dcloud.net.cn/article/35120)|5+App、H5|| -|onNavigationBarSearchInputChanged|监听原生标题栏搜索输入框输入内容变化事件|5+App、H5|1.6.0| -|onNavigationBarSearchInputConfirmed|监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。|5+App、H5|1.6.0| -|onNavigationBarSearchInputClicked|监听原生标题栏搜索输入框点击事件|5+App、H5|1.6.0| - -``onReachBottom``使用注意 -可在pages.json里定义具体页面底部的触发距离[onReachBottomDistance](/collocation/pages),比如设为50,那么滚动页面到距离底部50px时,就会触发onReachBottom事件。 - -如使用scroll-view导致页面没有滚动,则触底事件不会被触发。scroll-view滚动到底部的事件请参考scroll-view的文档 - - -``onPageScroll`` (监听滚动、滚动监听、滚动事件)参数说明: - -|属性|类型|说明| -|---|---|---| -|scrollTop|Number|页面在垂直方向已滚动的距离(单位px)| - -**注意** -- `onPageScroll`里不要写交互复杂的js,比如频繁修改页面。因为这个生命周期是在渲染层触发的,js是在逻辑层执行的,两层之间通信是有损耗的。如果在滚动过程中,频发触发两层之间的数据交换,可能会造成卡顿。 - -``onTabItemTap`` 参数说明: - -|属性|类型|说明| -|---|---|---| -|index|String|被点击tabItem的序号,从0开始| -|pagePath|String|被点击tabItem的页面路径| -|text|String|被点击tabItem的按钮文字| - -**注意** -- onTabItemTap常用于点击当前tabitem,滚动或刷新当前页面。如果是点击不同的tabitem,一定会触发页面切换。 -- 如果想在App端实现点击某个tabitem不跳转页面,不能使用onTabItemTap,可以使用[plus.nativeObj.view](http://www.html5plus.org/doc/zh_cn/nativeobj.html)放一个区块盖住原先的tabitem,并拦截点击事件。 -- onTabItemTap在App端,从HBuilderX 1.9 的自定义组件编译模式开始支持。 - -``onNavigationBarButtonTap`` 参数说明: - -|属性|类型|说明| -|---|---|---| -|index|Number|原生标题栏按钮数组的下标| - -`onBackPress` 回调参数对象说明: - -|属性|类型|说明| -|---|---|---| -|from|String|触发返回行为的来源:'backbutton'——左上角导航栏按钮及安卓返回键;'navigateBack'——uni.navigateBack() 方法。| -```javascript -export default { - data() { - return {}; - }, - onBackPress(options) { - console.log('from:' + options.from) - } -} -``` - -### 组件生命周期 - -``uni-app`` 组件支持如下页面生命周期函数: - -|函数名|说明|平台差异说明|最低版本| -|:-|:-|:-|:-| -|beforeCreate|在实例初始化之后被调用。[详见](https://cn.vuejs.org/v2/api/#beforeCreate)||| -|created|在实例创建完成后被立即调用。[详见](https://cn.vuejs.org/v2/api/#created)||| -|beforeMount|在挂载开始之前被调用。[详见](https://cn.vuejs.org/v2/api/#beforeMount)||| -|mounted|挂载到实例上去之后调用。[详见](https://cn.vuejs.org/v2/api/#mounted) 注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用```$nextTick```[Vue官方文档](https://cn.vuejs.org/v2/api/#Vue-nextTick)||| +|onResize|监听窗口尺寸变化|App、微信小程序|| +|onPullDownRefresh|监听用户下拉动作,一般用于下拉刷新,参考[示例](api/ui/pulldown)||| +|onReachBottom|页面滚动到底部的事件(不是scroll-view滚到底),常用于下拉下一页数据。具体见下方注意事项||| +|onTabItemTap|点击 tab 时触发,参数为Object,具体见下方注意事项|微信小程序、百度小程序、H5、App(自定义组件模式)|| +|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|| +|onNavigationBarSearchInputChanged|监听原生标题栏搜索输入框输入内容变化事件|App、H5|1.6.0| +|onNavigationBarSearchInputConfirmed|监听原生标题栏搜索输入框搜索事件,用户点击软键盘上的“搜索”按钮时触发。|App、H5|1.6.0| +|onNavigationBarSearchInputClicked|监听原生标题栏搜索输入框点击事件|App、H5|1.6.0| + +``onReachBottom``使用注意 +可在pages.json里定义具体页面底部的触发距离[onReachBottomDistance](/collocation/pages),比如设为50,那么滚动页面到距离底部50px时,就会触发onReachBottom事件。 + +如使用scroll-view导致页面没有滚动,则触底事件不会被触发。scroll-view滚动到底部的事件请参考scroll-view的文档 + + +``onPageScroll`` (监听滚动、滚动监听、滚动事件)参数说明: + +|属性|类型|说明| +|---|---|---| +|scrollTop|Number|页面在垂直方向已滚动的距离(单位px)| + +**注意** +- `onPageScroll`里不要写交互复杂的js,比如频繁修改页面。因为这个生命周期是在渲染层触发的,在非h5端,js是在逻辑层执行的,两层之间通信是有损耗的。如果在滚动过程中,频发触发两层之间的数据交换,可能会造成卡顿。 +- 如果想实现滚动时标题栏透明渐变,在App和H5下,可在pages.json中配置titleNView下的type为transparent,[参考](https://uniapp.dcloud.io/collocation/pages?id=app-titlenview)。 +- 如果需要滚动吸顶固定某些元素,推荐使用css的粘性布局,参考[插件市场](https://ext.dcloud.net.cn/plugin?id=715)。插件市场也有其他js实现的吸顶插件,但性能不佳,需要时可自行搜索。 +- 在App、微信小程序、H5中,也可以使用wxs监听滚动,[参考](https://uniapp.dcloud.io/frame?id=wxs);在app-nvue中,可以使用bindingx监听滚动,[参考](https://uniapp.dcloud.io/use-weex?id=nvue-%e9%87%8c%e4%bd%bf%e7%94%a8-bindingx)。 + +```js +onPageScroll : function(e) { //nvue暂不支持滚动监听,可用bindingx代替 + console.log("滚动距离为:" + e.scrollTop); +}, +``` + +``onTabItemTap`` 返回的json对象说明: + +|属性|类型|说明| +|---|---|---| +|index|String|被点击tabItem的序号,从0开始| +|pagePath|String|被点击tabItem的页面路径| +|text|String|被点击tabItem的按钮文字| + +**注意** +- onTabItemTap常用于点击当前tabitem,滚动或刷新当前页面。如果是点击不同的tabitem,一定会触发页面切换。 +- 如果想在App端实现点击某个tabitem不跳转页面,不能使用onTabItemTap,可以使用[plus.nativeObj.view](http://www.html5plus.org/doc/zh_cn/nativeobj.html)放一个区块盖住原先的tabitem,并拦截点击事件。 + +```js +onTabItemTap : function(e) { + console.log(e); + // e的返回格式为json对象: {"index":0,"text":"首页","pagePath":"pages/index/index.html"} +}, +``` + +``onNavigationBarButtonTap`` 参数说明: + +|属性|类型|说明| +|---|---|---| +|index|Number|原生标题栏按钮数组的下标| + +```js +onNavigationBarButtonTap : function (e) { + console.log(e); + // e的返回格式为json对象:{"text":"测试","index":0} +} +``` + +`onBackPress` 回调参数对象说明: + +|属性|类型|说明| +|---|---|---| +|from|String|触发返回行为的来源:'backbutton'——左上角导航栏按钮及安卓返回键;'navigateBack'——uni.navigateBack() 方法。| +```javascript +export default { + data() { + return {}; + }, + onBackPress(options) { + console.log('from:' + options.from) + } +} +``` + +**注意** + +- nvue 页面weex编译模式支持的生命周期同weex,具体参考:[weex生命周期介绍](/use-weex?id=生命周期)。 + +### 组件生命周期 + +``uni-app`` 组件支持的生命周期,与vue标准组件的生命周期相同。这里没有页面级的onLoad等生命周期: + +|函数名|说明|平台差异说明|最低版本| +|:-|:-|:-|:-| +|beforeCreate|在实例初始化之后被调用。[详见](https://cn.vuejs.org/v2/api/#beforeCreate)||| +|created|在实例创建完成后被立即调用。[详见](https://cn.vuejs.org/v2/api/#created)||| +|beforeMount|在挂载开始之前被调用。[详见](https://cn.vuejs.org/v2/api/#beforeMount)||| +|mounted|挂载到实例上去之后调用。[详见](https://cn.vuejs.org/v2/api/#mounted) 注意:此处并不能确定子组件被全部挂载,如果需要子组件完全挂载之后在执行操作可以使用```$nextTick```[Vue官方文档](https://cn.vuejs.org/v2/api/#Vue-nextTick)||| |beforeUpdate|数据更新时调用,发生在虚拟 DOM 打补丁之前。[详见](https://cn.vuejs.org/v2/api/#beforeUpdate)|仅H5平台支持|| -|updated|由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。[详见](https://cn.vuejs.org/v2/api/#updated)|仅H5平台支持|| -|beforeDestroy|实例销毁之前调用。在这一步,实例仍然完全可用。[详见](https://cn.vuejs.org/v2/api/#beforeDestroy)||| -|destroyed|Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。[详见](https://cn.vuejs.org/v2/api/#destroyed)||| - -**注意** - -- nvue 页面支持的生命周期参考:[nvue 生命周期介绍](/use-weex?id=生命周期)。 \ No newline at end of file +|updated|由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。[详见](https://cn.vuejs.org/v2/api/#updated)|仅H5平台支持|| +|beforeDestroy|实例销毁之前调用。在这一步,实例仍然完全可用。[详见](https://cn.vuejs.org/v2/api/#beforeDestroy)||| +|destroyed|Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。[详见](https://cn.vuejs.org/v2/api/#destroyed)||| + diff --git a/docs/collocation/main.md b/docs/collocation/main.md new file mode 100644 index 0000000000000000000000000000000000000000..f07d9f3d0df431914efc76fa9309d119a6bd2b0e --- /dev/null +++ b/docs/collocation/main.md @@ -0,0 +1,24 @@ +`main.js`是我们的入口文件,主要作用是初始化`vue`实例并使用需要的插件。 + +首先引入了`Vue`库和`App.vue`,创建了一个`vue`实例,并且挂载`vue`实例。 +``` +import Vue from 'vue' +import App from './App' +import pageHead from './components/page-head.vue' //引用page-head组件 + +Vue.config.productionTip = false +Vue.component('page-head', pageHead) //全局注册page-head组件 +App.mpType = 'app' + +const app = new Vue({ + ...App +}) +app.$mount() //挂载Vue实例 +``` +也可以引用`vuex`,使用`Vue.use`引用插件,使用`Vue.prototype`添加全局变量,使用`Vue.component`注册全局组件。 + +不过无法使用`vue-router`,路由须在`pages.json`中进行配置。 + + +**注意** +- nvue 暂不支持在 main.js 注册全局组件 diff --git a/docs/collocation/manifest.md b/docs/collocation/manifest.md index 3155a8bb72ecfa7fde8e10c5eb04d330e164eb3a..6b0ba1d97dc40fedf5f13d615530943b4baf9f63 100644 --- a/docs/collocation/manifest.md +++ b/docs/collocation/manifest.md @@ -296,7 +296,7 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http |resizable|Boolean|在iPad上小程序是否支持屏幕旋转,默认关闭| |navigateToMiniProgramAppIdList|Array|需要跳转的小程序列表,[详见](https://developers.weixin.qq.com/miniprogram/dev/api/open-api/miniprogram-navigate/wx.navigateToMiniProgram.html)| |permission|Object|微信小程序接口权限相关设置,比如申请位置权限必须填此处[详见](https://developers.weixin.qq.com/miniprogram/dev/framework/config.html)| -|workers|String|Worker 代码放置的目录,**HBuilderX 2.0.0+ Alpha** 支持。 [详见](https://developers.weixin.qq.com/miniprogram/dev/framework/workers.html)| +|workers|String|Worker 代码放置的目录。 [详见](https://developers.weixin.qq.com/miniprogram/dev/framework/workers.html)| #### setting @@ -321,6 +321,8 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http |:-|:-|:-| |appid|String|百度小程序的 AppID,登录 [https://smartprogram.baidu.com/docs/introduction/enter_application/](https://smartprogram.baidu.com/docs/introduction/enter_application/) 申请| |usingComponents|Boolean| 是否启用自定义组件模式,`v2.0+`,默认为false,[编译模式区别详情](https://ask.dcloud.net.cn/article/35843)| +|requiredBackgroundModes|Array|小程序需要在后台使用的能力,目前支持背景音频播放,"requiredBackgroundModes": ["audio"],[详见](https://smartprogram.baidu.com/docs/develop/tutorial/process/#requiredBackgroundModes) | +|prefetches|Array|预请求的所有url的列表,[详见](https://smartprogram.baidu.com/docs/develop/tutorial/process/#prefetches) | ### mp-toutiao @@ -329,6 +331,7 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http |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/docs/framework/globalSetting.html#%E5%85%A8%E5%B1%80%E9%85%8D%E7%BD%AE) | #### 头条小程序项目设置@mp-toutiao-setting @@ -341,10 +344,16 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http ### mp-qq -|属性|类型|说明| -|:-|:-|:-| -|appid|String|qq 小程序的 AppID,登录 [https://q.qq.com](https://q.qq.com) 申请| -|usingComponents|Boolean| 是否启用自定义组件模式,`v2.0+`,默认为false,[编译模式区别详情](https://ask.dcloud.net.cn/article/35843)。mp-qq只支持自定义组件模式| +|属性 |类型 |说明 | +|:- |:- |:- | +|appid |String |qq 小程序的 AppID,登录 [https://q.qq.com](https://q.qq.com) 申请 | +|requiredBackgroundModes |Array |小程序需要在后台使用的能力,目前支持背景音频播放,"requiredBackgroundModes": ["audio"],[详见](https://q.qq.com/wiki/develop/miniprogram/frame/dispose.html#requiredbackgroundmodes) | +|navigateToMiniProgramAppIdList |Array |需要跳转的小程序列表,[详见](https://q.qq.com/wiki/develop/miniprogram/frame/dispose.html#navigatetominiprogramappidlist) | +|permission |Object |小程序接口权限相关设置,比如申请位置权限必须填此处[详见](https://q.qq.com/wiki/develop/miniprogram/frame/dispose.html#permission) | +|workers |String |Worker 代码放置的目录。 [详见](https://q.qq.com/wiki/develop/miniprogram/frame/dispose.html#workers) | +|groupIdList |String Array |需要打开群资料卡的群号列表,详见button的open-type | + +mp-qq只支持自定义组件模式,不存在usingComponents配置 ### 完整 manifest.json @@ -482,8 +491,7 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http "share": { // 微信分享 "weixin": { - "appid": "", - "appsecret": "" + "appid": "" }, // 新浪微博分享 "sina": { @@ -491,15 +499,9 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http "appsecret": "", "redirect_uri": "" }, - // 分享到QQ好友 + // 分享到QQ "qq": { "appid": "" - }, - // 腾讯微博分享 - "tencent": { - "appkey": "", - "appsecret": "", - "redirect_uri": "" } }, "statics": { @@ -512,6 +514,7 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http } } }, + // 屏幕方向 "orientation": [ "portrait-primary", "landscape-primary", @@ -634,7 +637,8 @@ Tips:关于摇树优化(treeShaking)原理及优化结果,参考:[http "softinput": { "navBar": "auto", //是否显示iOS软键盘上的“完成”导航条 "mode": "adjustResize|adjustPan" //软键盘弹出模式, - } + }, + "popGesture": "none" //iOS上是否支持屏幕左边滑动关闭当前页面。默认是可关闭。设为none则不响应左滑动画。 }, // 快应用特有配置 "quickapp": {}, diff --git a/docs/collocation/pages.md b/docs/collocation/pages.md index 26d822da1665225ef3ca336a1c04b65a9d25e885..9d66c783a62ae65371b52053270ec6290962e2a8 100644 --- a/docs/collocation/pages.md +++ b/docs/collocation/pages.md @@ -75,7 +75,7 @@ 用于设置应用的状态栏、导航条、标题、窗口背景色等。 |属性|类型|默认值|描述|平台差异说明| -|:-|:-|:-|:-|| +|:-|:-|:-|:-|:-| |navigationBarBackgroundColor|HexColor|#F7F7F7|导航栏背景颜色(同状态栏背景色)|APP与H5为#F7F7F7,小程序平台请参考相应小程序文档|| |navigationBarTextStyle|String|white|导航栏标题颜色及状态栏前景颜色,仅支持 black/white|| |navigationBarTitleText|String||导航栏标题文字内容|| @@ -84,8 +84,11 @@ |backgroundTextStyle|String|dark|下拉 loading 的样式,仅支持 dark / light|微信小程序| |enablePullDownRefresh|Boolean|false|是否开启下拉刷新,详见[页面生命周期](/use?id=页面生命周期)。|| |onReachBottomDistance|Number|50|页面上拉触底事件触发时距页面底部距离,单位只支持px,详见[页面生命周期](/use?id=页面生命周期)|| -|backgroundColorTop|HexColor|#ffffff|顶部窗口的背景色。|仅 iOS 平台| -|backgroundColorBottom|HexColor|#ffffff|底部窗口的背景色。|仅 iOS 平台| +|backgroundColorTop|HexColor|#ffffff|顶部窗口的背景色(bounce回弹区域)|仅 iOS 平台| +|backgroundColorBottom|HexColor|#ffffff|底部窗口的背景色(bounce回弹区域)|仅 iOS 平台| +|titleImage|String||导航栏图片地址(替换当前文字标题),支付宝小程序内必须使用https的图片链接地址|支付宝小程序、H5、APP| +|transparentTitle|String|none|导航栏透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明|支付宝小程序、H5、APP| +|titlePenetrate|String|NO|导航栏点击穿透|支付宝小程序、H5| |pageOrientation|String|portrait|屏幕旋转设置,仅支持 auto / portrait 详见 [响应显示区域变化](https://developers.weixin.qq.com/miniprogram/dev/framework/view/resizable.html)|微信小程序| |animationType|String|pop-in|窗口显示的动画效果,详见:[窗口动画](api/router?id=animation)|App| |animationDuration|Number|300|窗口显示动画的持续时间,单位为 ms|App| @@ -98,6 +101,13 @@ |mp-qq|Object||设置编译到 mp-qq 平台的特定样式|QQ小程序| |usingComponents|Object| |引用小程序组件,参考 [小程序组件](/frame?id=小程序组件支持)|微信小程序、App| + +**注意** + +- 支付宝小程序使用`titleImage`时必须使用`https`的图片链接地址,需要真机调试才能看到效果,支付宝开发者工具内无效果 +- `globalStyle`中设置的`titleImage`也会覆盖掉`pages`->`style`内的设置文字标题 +- navigationBarTextStyle 在iOS13上可能会错乱,此问题后续版本会修复 + # pages `uni-app` 通过 pages 节点配置应用由哪些页面组成,pages 节点接收一个数组,数组每个项都是一个对象,其属性值如下: @@ -165,8 +175,11 @@ |backgroundTextStyle|String|dark|下拉 loading 的样式,仅支持 dark/light|| |enablePullDownRefresh|Boolean|false|是否开启下拉刷新,详见[页面生命周期](/use?id=页面生命周期)。|| |onReachBottomDistance|Number|50|页面上拉触底事件触发时距页面底部距离,单位只支持px,详见[页面生命周期](/use?id=页面生命周期)|| -|backgroundColorTop|HexColor|#ffffff|顶部窗口的背景色。|仅 iOS 平台| -|backgroundColorBottom|HexColor|#ffffff|底部窗口的背景色。|仅 iOS 平台| +|backgroundColorTop|HexColor|#ffffff|顶部窗口的背景色(bounce回弹区域)|仅 iOS 平台| +|backgroundColorBottom|HexColor|#ffffff|底部窗口的背景色(bounce回弹区域)|仅 iOS 平台| +|titleImage|String||导航栏图片地址(替换当前文字标题),支付宝小程序内必须使用https的图片链接地址|支付宝小程序、H5| +|transparentTitle|String|none|导航栏透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明|支付宝小程序、H5、APP| +|titlePenetrate|String|NO|导航栏点击穿透|支付宝小程序、H5| |app-plus|Object||设置编译到 App 平台的特定样式,配置项参考下方 [app-plus](/collocation/pages?id=app-plus)|App| |h5|Object||设置编译到 H5 平台的特定样式,配置项参考下方 [H5](/collocation/pages?id=h5)|H5| |mp-alipay|Object||设置编译到 mp-alipay 平台的特定样式,配置项参考下方 [MP-ALIPAY](/collocation/pages?id=mp-alipay)|支付宝小程序| @@ -193,6 +206,10 @@ ``` +**注意** + +- 支付宝小程序使用`titleImage`时必须使用`https`的图片链接地址,需要真机调试才能看到效果,支付宝开发者工具内无效果 + ### 自定义导航栏使用注意@customnav 当navigationStyle设为custom或titleNView设为false时,原生导航栏不显示,此时要注意几个问题: - 非H5端,手机顶部状态栏区域会被页面内容覆盖。这是因为窗体是沉浸式的原因,即全屏可写内容。uni-app提供了状态栏高度的css变量[--status-bar-height](/frame?id=css%e5%8f%98%e9%87%8f),如果需要把状态栏的位置从前景部分让出来,可写一个占位div,高度设为css变量。 @@ -236,7 +253,8 @@ |titleNView|Object||导航栏 ,详见:[导航栏](/collocation/pages?id=app-titleNView)|App、H5| |subNVues|Object||原生子窗体,详见:[原生子窗体](/collocation/pages?id=app-subNVues)|App 1.9.10+| |bounce|String||页面回弹效果,设置为 "none" 时关闭效果。|App(nvue Android暂无bounce效果)| -|softinputNavBar|String||iOS软键盘上完成工具栏的显示模式,设置为 "none" 时关闭工具栏。|仅ios生效| +|softinputNavBar|String|auto|iOS软键盘上完成工具栏的显示模式,设置为 "none" 时关闭工具栏。|仅ios生效| +|softinputMode|String|adjustPan|软键盘弹出模式,支持 adjustResize、adjustPan 两种模式|App| |pullToRefresh|Object||下拉刷新|App| |scrollIndicator|String||滚动条显示策略,设置为 "none" 时不显示滚动条。|App| |animationType|String|pop-in|窗口显示的动画效果,详见:[窗口动画](api/router?id=animation)。|App| @@ -245,15 +263,15 @@ - `.nvue` 页面仅支持 `titleNView` 配置,其它配置项暂不支持 #### 导航栏@app-titleNView -|属性|类型|默认值|描述|最低版本| +|属性|类型|默认值|描述|版本兼容性| |:-|:-|:-|:-|:-| -|backgroundColor|String|#F7F7F7|背景颜色,颜色值格式为"#RRGGBB"。|| -|buttons|Array||自定义按钮,详见 [buttons](/collocation/pages?id=app-titlenview-buttons)|| +|backgroundColor|String|#F7F7F7|背景颜色,颜色值格式为"#RRGGBB"。在使用半透明标题栏时,也可以设置rgba格式|| +|buttons|Array||自定义按钮,详见 [buttons](/collocation/pages?id=app-titlenview-buttons)|纯nvue即render:native时暂不支持| |titleColor|String|#000000|标题文字颜色|| |titleOverflow|String|ellipsis|标题文字超出显示区域时处理方式。"clip"-超出显示区域时内容裁剪;"ellipsis"-超出显示区域时尾部显示省略标记(...)。|| |titleText|String||标题文字内容|| |titleSize|String||标题文字字体大小|| -|type|String|default|导航栏样式。"default"-默认样式;"transparent"-透明渐变。|| +|type|String|default|导航栏样式。"default"-默认样式;"transparent"-滚动透明渐变;"float"-悬浮导航栏。|| |tags|Array||原生 View 增强,详见:[5+ View 控件](http://www.html5plus.org/doc/zh_cn/nativeobj.html#plus.nativeObj.ViewDrawTagStyles)|| |searchInput|Object||原生导航栏上的搜索框配置,详见:[searchInput](/collocation/pages?id=app-titlenview-searchinput)|1.6.0| @@ -261,8 +279,8 @@ - 每个页面均支持通过配置 `titleNView:false` 来禁用原生导航栏。一旦禁用原生导航,请注意阅读[自定义导航注意事项](/collocation/pages?id=customnav)。 - `titleNView` 不能设置 `autoBackButton`、`homeButton`等属性 -- `titleNView` 的 `type` 值为 `transparent` 时,导航栏为透明渐变导航栏 -- 在 `titleNView` 配置 `buttons` 后,监听按钮的点击事件,vue 页面参考:[onNavigationBarButtonTap](/frame?id=页面生命周期)、nvue 页面参考:[uni.onNavigationBarButtonTap](/use-weex?id=onnavigationbarbuttontap) +- `titleNView` 的 `type` 值为 `transparent` 时,导航栏为滚动透明渐变导航栏,默认只有button,滚动后标题栏底色和title文字会渐变出现; `type` 为 `float` 时,导航栏为悬浮标题栏,此时页面内容上顶到了屏幕顶部,包括状态栏,但导航栏悬浮盖在页面上方,一般这种场景会同时设置导航栏的背景色为rgba半透明颜色。 +- 在 `titleNView` 配置 `buttons` 后,监听按钮的点击事件,vue 页面及 nvue 的uni-app编译模式参考:[onNavigationBarButtonTap](/frame?id=页面生命周期)、nvue 的weex编译模式参考:[uni.onNavigationBarButtonTap](/use-weex?id=onnavigationbarbuttontap) - 在 `titleNView` 配置 `searchInput` 后,相关的事件监听参考:[onNavigationBarSearchInputChanged 等](/frame?id=页面生命周期) - App下原生导航栏的按钮如果使用字体图标,注意检查字体库的名字(font-family)是否使用了默认的 iconfont,这个名字是保留字,不能作为外部引入的字体库的名字,需要调整为自定义的名称,否则无法显示。 - 想了解各种导航栏的开发方法,请详读[导航栏开发指南](https://ask.dcloud.net.cn/article/34921) @@ -387,10 +405,12 @@ searchInput的点击输入框onNavigationBarSearchInputClicked、文本变化onN #### 原生子窗体@app-subNVues -`subNVues` 是 vue 页面的原生子窗体。用于解决 vue 页面中的层级覆盖和原生界面灵活自定义用的。 +`subNVues` 是 vue 页面的原生子窗体。用于解决App中 vue 页面中的层级覆盖和原生界面灵活自定义用的。 它不是全屏页面,也不是组件,就是一个原生子窗体。它是一个 nvue 页面,使用 weex 引擎渲染,提供了比 cover-view、plus.nativeObj.view 更强大的原生排版能力,方便自定义原生导航或覆盖原生地图、视频等。请详读[subNVues 开发指南](http://ask.dcloud.net.cn/article/35948) +`subNVue` 也可以在 nvue 页面中使用。但目前在纯nvue下(render为native)还不支持。 + |属性|类型|描述| |:- |:- |:-| |id|String| subNVue 原生子窗体的标识 | @@ -603,18 +623,18 @@ h5 平台下拉刷新动画,只有 circle 类型。 |属性|类型|默认值|描述| |:-|:-|:-|:-| |allowsBounceVertical|String|YES|是否允许向下拉拽。支持 YES / NO| +|titleImage|String||导航栏图片地址(替换当前文字标题),内必须使用https的图片链接地址| |transparentTitle|String|none|导航栏透明设置。支持 always 一直透明 / auto 滑动自适应 / none 不透明| -|titlePenetrate|String|NO|导航栏点击穿透| -|showTitleLoading|String|NO|是否进入时显示导航栏的 loading。支持 YES / NO| -|titleImage|String||导航栏图片地址(替换当前标题),必须为https的图片链接地址| -|backgroundImageUrl|String||下拉露出显示的背景图链接| -|backgroundImageColor|HexColor||下拉露出显示的背景图底色| -|gestureBack|String|NO|iOS 用,是否支持手势返回。支持 YES / NO| +|titlePenetrate|String|NO|导航栏点击穿透| +|showTitleLoading|String|NO|是否进入时显示导航栏的 loading。支持 YES / NO| +|backgroundImageUrl|String||下拉露出显示的背景图链接| +|backgroundImageColor|HexColor||下拉露出显示的背景图底色| +|gestureBack|String|NO|iOS 用,是否支持手势返回。支持 YES / NO| |enableScrollBar|String|YES|Android 用,是否显示 WebView 滚动条。支持 YES / NO| **注意事项** -- ```titleImage```仅支持https地址,设置了```titleImage```会是页面```title```失效 +- ```titleImage```仅支持https地址,设置了```titleImage```会替换页面文字标题 - ```backgroundImageUrl```支持网络地址和本地地址,尽量使用绝对地址 - 部分配置可能会只在真机运行的时候生效,支付宝未来应该会改善 @@ -631,7 +651,7 @@ h5 平台下拉刷新动画,只有 circle 类型。 - tabBar 中的 list 是一个数组,只能配置最少2个、最多5个 tab,tab 按数组的顺序排序。 - tabbar 切换第一次加载时可能渲染不及时,可以在每个tabbar页面的onLoad生命周期里先弹出一个等待雪花(hello uni-app使用了此方式) - tabbar 的页面展现过一次后就保留在内存中,再次切换 tabbar 页面,只会触发每个页面的onShow,不会再触发onLoad。 -- 顶部的 tabbar 目前仅微信小程序上支持,需要用到顶部选项卡的话,参考 hello uni-app->模板->顶部选项卡。 +- 顶部的 tabbar 目前仅微信小程序上支持。需要用到顶部选项卡的话,建议不使用 tabbar 的顶部设置,而是自己做顶部选项卡,可参考 hello uni-app->模板->顶部选项卡。 **属性说明:** @@ -658,14 +678,15 @@ h5 平台下拉刷新动画,只有 circle 类型。 - tabbar 的 item 点击事件见[页面生命周期的onTabItemTap](https://uniapp.dcloud.io/frame?id=%E9%A1%B5%E9%9D%A2%E7%94%9F%E5%91%BD%E5%91%A8%E6%9C%9F)。 - 代码跳转到tabbar页面,api只能使用[uni.switchTab](https://uniapp.dcloud.io/api/router?id=switchtab),不能使用uni.navigateTo、uni.redirectTo;使用navigator组件跳转时必须设置[open-type="switchTab"](https://uniapp.dcloud.io/component/navigator) - tabbar 在H5端是div模拟的,属于前端屏幕窗口的一部分,如果要使用bottom居底定位方式,应该使用css变量`--window-bottom`,比如悬浮在tabbar上方10px的按钮,样式如下`bottom: calc(var(--window-bottom) + 10px)` +- tabbar 的默认高度,在不同平台不一样。[详见](https://uniapp.dcloud.io/frame?id=%e5%9b%ba%e5%ae%9a%e5%80%bc) - 中间带+号的tabbar模板例子,[参考](https://ext.dcloud.net.cn/plugin?id=98)。可跨端,但+号不凸起。 -- 如需 tabbar 中间凸起,App端可使用plus.nativeObj.view,[参考](https://ask.dcloud.net.cn/article/35036)。H5端可使用view自绘。 -- 如果不使用原生tabbar,在前端自己实现tabbar,在小程序和App端的性能体验不如原生tabbar。如果是多页方式,底部tabbar会在切换时闪一下,如果是单页方式,承载复杂页面内容会有性能问题。[插件市场](https://ext.dcloud.net.cn/search?q=tabbar)搜索tabbar有不少类似例子。 -- App端使用nvue,可以不用这里的tabbar,自己做tabbar,没有性能体验问题。 -- Android App上弹出键盘顶起tabbar的问题。如果是搜索框,建议点击后新开页面搜索(hello uni-app有例子);也可以动态隐藏tabbar;也可以配置 manifest.json 中 app-plus->softinput->mode 设置为 adjustPan,注意仅打包后生效。[详见manifest配置](https://uniapp.dcloud.io/collocation/manifest?id=%E5%AE%8C%E6%95%B4-manifestjson) -- 原生的tabbar只有一个且在首页。二级页的tab,或者用前端实现,或者App端使用nvue。 +- 如需 tabbar 中间凸起,可自定义tabbar,插件市场有例子,如colorUI等。但注意前端tabbar的性能不如原生tabbar,如果是多页方式,底部tabbar会在切换时闪执行转场动画,如果是单页方式,承载复杂页面内容会有性能问题。[插件市场](https://ext.dcloud.net.cn/search?q=tabbar)搜索tabbar有不少类似例子。 +- App端若使用nvue,自定义tabbar,没有性能体验问题。 +- 纯nvue项目(manifest里renderer为native),目前使用pages.json里的tabbar反而影响性能,建议使用前端自己实现单页面的tabbar。后续会解决这个bug。 +- Android App上弹出键盘顶起tabbar的问题。升级到HBuilderX 2.2后不再存在。 +- 原生的tabbar只有一个且在首页。二级页如需的tab,前端自己实现。 - 如果是需要先登录、后进入tab页面,不需要把登陆页设为首页,首页仍然是tabbar页,可参考HBuilderX新建uni-app项目时的登陆模板 -- 前端弹出遮罩层挡不住tabbar的问题,跨端处理方式时动态隐藏tabbar。App端可以使用plus.nativeObj.view做弹出和遮罩,可参考这个[底部原生图标分享菜单例子](https://ext.dcloud.net.cn/plugin?id=69) +- 前端弹出遮罩层挡不住tabbar的问题,跨端处理方式时动态隐藏tabbar。App端可以使用plus.nativeObj.view或subNVue做弹出和遮罩,可参考这个[底部原生图标分享菜单例子](https://ext.dcloud.net.cn/plugin?id=69) - 微信小程序模拟器1.02.1904090版有bug,在缩放模拟器页面百分比后,tabbar点击多次后就会卡死。真机无碍,使用时注意。[详见](https://developers.weixin.qq.com/community/develop/doc/0002e6e6bf0d602d8c783e10756400) **代码示例** diff --git a/docs/component/ad.md b/docs/component/ad.md index 342c42676a89ef6950956aa5d485f5a40686cc11..ab5981d4d70a30e8e6c4dad50f41f8a72d89431b 100644 --- a/docs/component/ad.md +++ b/docs/component/ad.md @@ -1,12 +1,12 @@ #### ad -Banner 广告。 +广告组件 广告能力在不同小程序端实现不同,使用时需注意用[条件编译](https://uniapp.dcloud.io/platform)调用不同平台的代码。 +- App平台:无需编码,在打包App时可直接勾选广告位,[详见](https://dcloud.io/dad.html) - 微信小程序:[规范文档](https://developers.weixin.qq.com/miniprogram/dev/component/ad.html) - 百度小程序:[规范文档](https://smartprogram.baidu.com/docs/develop/component/ad/) - 支付宝小程序:不支持此能力 - 头条小程序:仅小游戏可用,小程序不可用,不适用于uni-app - QQ小程序:[规范文档](https://q.qq.com/wiki/develop/miniprogram/component/open-ability/ad.html) -- App平台:无需编码,在打包App时可直接勾选广告位,[详见](https://dcloud.io/dad.html) diff --git a/docs/component/audio.md b/docs/component/audio.md index 6795f7ec01e59d0848fe9d3220419f74a5c33114..0e1616530fb1c83702fefe5db4f06c5fedaf2200 100644 --- a/docs/component/audio.md +++ b/docs/component/audio.md @@ -37,7 +37,7 @@ app-nvue也不支持此组件。 |3|解码错误| |4|不合适资源| -**示例:** +**示例:** [查看示例](https://uniapp.dcloud.io/h5/pages/component/audio/audio) ```html