提交 59bd178b 编写于 作者: 雪洛's avatar 雪洛

Merge branch 'master' of https://github.com/dcloudio/uni-app

```uni-app``` 是一个使用 [Vue.js](https://vuejs.org/) 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉等多个平台。
```uni-app``` 是一个使用 [Vue.js](https://vuejs.org/) 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉/淘宝)、快应用等多个平台。
`DCloud`公司拥有470万开发者,几十万应用案例、8.4亿手机端月活用户,数千款uni-app插件、70+微信/qq群。阿里小程序工具官方内置uni-app([详见](https://docs.alipay.com/mini/ide/0.70-stable)),腾讯课堂官方为uni-app录制培训课程([详见](https://ask.dcloud.net.cn/article/35640)),开发者可以放心选择。
`DCloud`公司拥有470万开发者用户,几十万应用案例、8.4亿手机端月活用户,数千款uni-app插件、70+微信/qq群。阿里小程序工具官方内置uni-app([详见](https://docs.alipay.com/mini/ide/0.70-stable)),腾讯课堂官方为uni-app录制培训课程([详见](https://ask.dcloud.net.cn/article/35640)),开发者可以放心选择。
`uni-app`在手,做啥都不愁。即使不跨端,```uni-app```也是更好的小程序开发框架([详见](https://ask.dcloud.net.cn/article/35947))、更好的App跨平台框架、更方便的H5开发框架。不管领导安排什么样的项目,你都可以快速交付,不需要转换开发思维、不需要更改开发习惯。
......
......@@ -99,8 +99,8 @@ uni.getLocation({
|:-|:-|
|name|位置名称|
|address|详细地址|
|latitude|纬度,浮点数,范围为-90~90,负数表示南纬|
|longitude|经度,浮点数,范围为-180~180,负数表示西经|
|latitude|纬度,浮点数,范围为-90~90,负数表示南纬,使用 gcj02 国测局坐标系。|
|longitude|经度,浮点数,范围为-180~180,负数表示西经,使用 gcj02 国测局坐标系。|
**示例**
......
......@@ -61,18 +61,24 @@ editor 组件对应的 editorContext 实例,可通过 [uni.createSelectorQuery
## editorContext.insertImage(OBJECT)
插入图片
插入图片。
微信小程序平台地址为临时文件时,获取的编辑器html格式内容中 `<img>` 标签增加属性 data-local,delta 格式内容中图片 attributes 属性增加 data-local 字段,该值为传入的临时文件地址。
开发者可选择在提交阶段上传图片到服务器,获取到网络地址后进行替换。替换时对于html内容应替换掉 `<img>` 的 src 值,对于 delta 内容应替换掉 `insert { image: abc }` 值。
**OBJECT 参数说明**
| 属性 | 类型 | 默认值 | 必填 | 说明 |
| --- | --- | --- | --- | --- |
| src | String | | 是 | 图片地址 |
| alt | String | | 否 | 图像无法显示时的替代文本 |
| data | Object | | 否 | data 被序列化为 name=value;name1=value2 的格式挂在属性 data-custom 上 |
| success | Function | | 否 | 接口调用成功的回调函数 |
| fail | Function | | 否 | 接口调用失败的回调函数 |
| complete | Function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
| 属性 | 类型 | 默认值 | 必填 | 说明 |平台差异说明|
| --- | --- | --- | --- | --- | --- |
| src | String | | 是 | 图片地址 | |
| alt | String | | 否 | 图像无法显示时的替代文本 | |
| width | String | | 否 | 图片宽度(pixels/百分比) |仅微信小程序支持|
| height | String | | 否 | 图片高度 (pixels/百分比) |仅微信小程序支持|
| extClass | String | | 否 | 添加到图片 img 标签上的类名 |仅微信小程序支持|
| data | Object | | 否 | data 被序列化为 name=value;name1=value2 的格式挂在属性 data-custom 上 |仅微信小程序支持|
| success | Function | | 否 | 接口调用成功的回调函数 | |
| fail | Function | | 否 | 接口调用失败的回调函数 | |
| complete | Function | | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) | |
## editorContext.insertText(OBJECT)
......
......@@ -251,4 +251,4 @@ pages.json 中配置的是窗口显示的动画
**注意**
- 纯nvue项目(render为native),窗体动画默认进入动画为popin,返回为pop-out。如果想修改动画类型,只能通过uni.navigateTo API修改,在组件或pages.json里配置动画类型无效
- 非纯nvue项目,App端窗体动画,默认进入动画为slider-in-right,默认返回动画为pop-out
- webview 中嵌入 uni-app H5时,使用 uni.webView.navigateTo... 跳转页面
......@@ -48,7 +48,7 @@ uni.scanCode({
// 调起条码扫描
uni.scanCode({
scanType: 'barCode',
scanType: ['barCode'],
success: function (res) {
console.log('条码类型:' + res.scanType);
console.log('条码内容:' + res.result);
......
......@@ -14,6 +14,8 @@
- [colorUI for uni-app](https://ext.dcloud.net.cn/plugin?id=239):colorUI官方维护的uni-app版本,酷炫漂亮的css库 -- by 文晓港
- [仿抖音短视频示例](https://ext.dcloud.net.cn/plugin?id=860):基于uni-app的nvue编译的高性能原生项目 -- by 林举
- [得推B2C商城](https://ext.dcloud.net.cn/plugin?id=187):一套简洁的B2C商城,全部功能完善,用户、下单、注册 -- by 得推网络科技
- [商城类项目模版](https://ext.dcloud.net.cn/plugin?id=200):漂亮的商城前端模板,可变背景导航栏、购物车、详情模板 -- by MixR
......
......@@ -210,7 +210,7 @@ H5平台是SPA单页应用,普通的SEO信息即加meta字段只能在,自
|属性|类型|默认值|说明|
|:-|:-|:-|:-|
|mode|String|hash|路由跳转模式,支持 hash、history|
|base|String|/|应用基础路径,例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/"|
|base|String|/|应用基础路径,例如,如果整个单页应用服务在 /app/ 下,然后 base 就应该设为 "/app/",支持设置为相对路径 "./"|
**注意:**
......
......@@ -61,7 +61,7 @@
|:-|:-|:-|
|feedback|打开“意见反馈”页面,用户可提交反馈内容并上传日志|App、微信小程序、QQ小程序|
|share|触发用户转发|微信小程序、百度小程序、支付宝小程序、字节跳动小程序、QQ小程序|
|getUserInfo|获取用户信息,可以从@getuserinfo回调中获取到用户信息,包括手机号、头像、昵称等信息|微信小程序、百度小程序、QQ小程序|
|getUserInfo|获取用户信息,可以从@getuserinfo回调中获取到用户信息,包括头像、昵称等信息|微信小程序、百度小程序、QQ小程序|
|contact | 打开客服会话,如果用户在会话中点击消息卡片后返回应用,可以从 @contact 回调中获得具体信息 |微信小程序、百度小程序|
|getPhoneNumber | 获取用户手机号,可以从@getphonenumber回调中获取到用户信息|微信小程序、百度小程序、字节跳动小程序、支付宝小程序 |
|launchApp | 打开APP,可以通过app-parameter属性设定向APP传的参数|[微信小程序](https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/launchApp.html)[QQ小程序](https://q.qq.com/wiki/develop/miniprogram/frame/open_ability/open_app.html)|
......
......@@ -95,9 +95,9 @@
![uniapp](https://img-cdn-qiniu.dcloud.net.cn/uniapp/doc/img/form.png?t=201857)
**微信小程序注意事项**
**小程序端注意事项**
微信小程序端在`from`内的自定义组件内有`input`等表单控件时,无法在`form``submit`事件内获取组件内表单控件值,此时可以使用微信提供的[behaviors](https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/behaviors.html)来做一下兼容。参考以下示例
小程序端在`from`内的自定义组件内有`input`等表单控件时,无法在`form``submit`事件内获取组件内表单控件值,此时可以使用`behaviors`,示例如下
```html
<!-- /pages/index/index.vue -->
......@@ -141,13 +141,7 @@
<script>
export default {
name: 'compInput',
behaviors: ['wx://form-field'],
props: {
value: {
type: String,
default: ''
}
},
behaviors: ['uni://form-field'],
methods: {
onInput(e) {
this.$emit('input', e.detail.value)
......
......@@ -276,3 +276,6 @@ A:调用 uni 相关的 API,就可以实现页面切换及发送消息。参
Q:web-view 加载的 HTML 中,能够调用 5+ 的能力么?
A:加载的 HTML 中是有 5+ 环境的,在 plusready 后调用即可。参考:[一个简单实用的 plusready 方法](https://ask.dcloud.net.cn/article/34922)
Q: web-view 加载 uni-app H5,内部跳转冲突如何解决
A:使用 uni.webView.navigateTo...
......@@ -178,49 +178,71 @@ vue页面在App端的渲染引擎默认是系统webview(不是手机自带浏
* 为避免和内置组件冲突,自定义组件请加上前缀(但不能是 u 和 uni)。比如可使用的自定义组件名称:``my-view````m-input````we-icon``,例如不可使用的自定义组件名称:``u-view````uni-input``,如果已有项目使用了可能造成冲突的名称,请修改名称,另外微信小程序下自定义组件名称不能以 wx 开头。
### 小程序开发注意@mp
#### 各家小程序实现机制不同,可能存在的平台兼容问题
### 微信小程序开发注意
1.浏览器内核差异
* [微信小程序当前bug列表](https://developers.weixin.qq.com/community/develop/issueList?type=%E4%BF%AE%E5%A4%8D%E4%B8%AD&block=bug)
* [微信小程序更新日志](https://developers.weixin.qq.com/miniprogram/dev/framework/release/)
### 支付宝小程序开发注意
各家小程序的浏览器内核不同,可能会造成css兼容性问题,更多细节参考:[https://ask.dcloud.net.cn/article/1318](https://ask.dcloud.net.cn/article/1318)
* [支付宝小程序更新日志](https://docs.alipay.com/mini/ide/framework-changelog)
* 支付宝小程序开发工具:[https://docs.alipay.com/mini/ide/download](https://docs.alipay.com/mini/ide/download)
* 目前无分包的配置,并且包体积限制在 3M。
* showLoading 是不透传的,也就是说 loading 显示的时候无法点击页面内容。
* 文件名或文件夹名中不允许出现 @ 符号。
* 网络请求返回的数据会严格按照 ``dataType`` 进行处理,如果不符合规范则会抛出错误,而不是按照原格式返回。
* ``canvas`` 组件的标识是 ``id``,而不是 ``canvas-id``。目前还未进行处理,所以需要主动添加 id 属性。
* 目前测试的结果,导航栏只有设置背景颜色为 #FFF(FFF) 时才会变成黑色文字。
* 支付宝小程序的导航栏是支持透明渐变效果的,后面会提供相关的配置。
* 使用伪元素做边框时,高度值不能用 ``1rpx``,需要直接用 ``1px``
* 不支持 ECharts。
* 支付功能模拟不了,需要真机测试。
2.自定义组件渲染差异
### 百度小程序开发注意
微信/QQ/百度/字节跳动这四家小程序,自定义组件在渲染时会比App/H5端多一级节点,在写样式时需要注意:
* [百度小程序更新日志](https://smartprogram.baidu.com/docs/develop/swan/swanchangelog/)
* 百度小程序开发工具:[https://smartprogram.baidu.com/docs/introduction/tool/](https://smartprogram.baidu.com/docs/introduction/tool/)
* 不支持属性选择器。
* 不支持 ``scoped``
* login / getUserInfo /支付等功能在模拟器(开发工具)上不能模拟。
* ``map`` 组件在开发工具上预览效果不对,但是手机上是对的。
* ``getSystemInfo`` 获取到的 ``windowHeight`` 在模拟器中值不正确,真机预览是正确的。
* ``v-if````v-for`` 不可在同一标签下同时使用。
* 页面中引入自定义组件时,渲染的结果中外层会有一个 ``template`` 标签,这会导致部分选择器对应的样式匹配不上。
* 使用`flex`布局时,直接给自定义组件的父元素设置为`display:flex`不能影响到自定义组件内部的根节点,需要设置当前自定义组件为`display:flex`才可以。
* 在自定义组件内部设置根元素高度为100%,不能撑满自定义组件父元素。需要同时设置当前自定义组件高度为100%才可以。
### 各家小程序的浏览器内核不同,会造成css兼容性问题
查阅细节参考:[https://ask.dcloud.net.cn/article/1318](https://ask.dcloud.net.cn/article/1318)
支付宝小程序不会插入节点,不存在如上问题。
### vendor.js过大的处理方式
#### vendor.js 过大的处理方式
小程序工具提示vendor.js过大,已经跳过es6向es5转换。这个转换问题本身不用理会,因为vendor.js已经是es5的了。
小程序工具提示`vendor.js`过大,已经跳过es6向es5转换。这个转换问题本身不用理会,因为`vendor.js`已经是es5的了。
关于体积控制,参考如下:
- 使用运行时代码压缩
+ `HBuilderX`创建的项目勾选`运行-->运行到小程序模拟器-->运行时是否压缩代码`
+ `cli`创建的项目可以在`pacakge.json`中添加参数`--minimize`,示例:`"dev:mp-weixin": "cross-env NODE_ENV=development UNI_PLATFORM=mp-weixin vue-cli-service uni-build --watch --minimize"`
- 使用分包优化,[关于分包优化的说明](/collocation/manifest?id=关于分包优化的说明)
#### 各家小程序开发工具下载地址
* [微信开发者工具](https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html)
* [支付宝开发者工具](https://docs.alipay.com/mini/ide/download)
* [百度开发者工具](https://smartprogram.baidu.com/docs/introduction/tool/)
* [字节跳动开发者工具](https://developer.toutiao.com/dev/cn/mini-app/develop/developer-instrument/developer-instrument-update-and-download)
#### 各家小程序更新日志列表
* [微信小程序更新日志](https://developers.weixin.qq.com/miniprogram/dev/framework/release/)
* [支付宝小程序更新日志](https://docs.alipay.com/mini/ide/framework-changelog)
* [百度小程序更新日志](https://smartprogram.baidu.com/docs/develop/swan/swanchangelog/)
* [字节跳动小程序更新日志](https://developer.toutiao.com/dev/cn/mini-app/develop/basic-library/update-log)
#### 微信小程序开发注意
- 建议关注[微信小程序当前bug列表](https://developers.weixin.qq.com/community/develop/issueList?type=%E4%BF%AE%E5%A4%8D%E4%B8%AD&block=bug),对已知Bug,想办法避让。
#### 支付宝小程序开发注意
* `showLoading` 是不透传的,也就是说 `loading` 显示的时候无法点击页面内容。
* 文件名或文件夹名中不允许出现 `@` 符号。
* 网络请求返回的数据会严格按照 `dataType` 进行处理,如果不符合规范则会抛出错误,而不是按照原格式返回。
* `canvas` 组件的标识是 `id`,而不是 `canvas-id`。目前还未进行处理,所以需要主动添加 id 属性。
* 目前测试的结果,导航栏只有设置背景颜色为 #FFF(FFF) 时才会变成黑色文字。
* 支付宝小程序的导航栏是支持透明渐变效果的,后面会提供相关的配置。
* 使用伪元素做边框时,高度值不能用 `1rpx`,需要直接用 `1px`
* 不支持 ECharts。
* 支付功能模拟不了,需要真机测试。
#### 百度小程序开发注意
* 不支持属性选择器。
* 不支持 `scoped`
* login / getUserInfo /支付等功能在模拟器(开发工具)上不能模拟。
* `map` 组件在开发工具上预览效果不对,但是手机上是对的。
* `getSystemInfo` 获取到的 `windowHeight` 在模拟器中值不正确,真机预览是正确的。
* `v-if``v-for` 不可在同一标签下同时使用。
* 页面中引入自定义组件时,渲染的结果中外层会有一个 `template` 标签,这会导致部分选择器对应的样式匹配不上。
此差异已折叠。
......@@ -266,10 +266,10 @@ let res = await collection.doc('doc-id').set({
### 添加查询条件
collection.where()
参数
设置过滤条件
where 可接收对象作为参数,表示筛选出拥有和传入对象相同的 key-value 的文档。比如筛选出所有类型为计算机的、内存为 8g 的商品:
**在聚合操作中请使用match**
设置过滤条件,where 可接收对象作为参数,表示筛选出拥有和传入对象相同的 key-value 的文档。比如筛选出所有类型为计算机的、内存为 8g 的商品:
```js
let res = await db.collection('goods').where({
......@@ -302,7 +302,6 @@ db.collection('user').where({
collection.count()
参数
```js
let res = await db.collection('goods').where({
category: 'computer',
......@@ -312,6 +311,17 @@ let res = await db.collection('goods').where({
}).count()
```
**注意**
使用阿里云时,count必须搭配where使用,此问题阿里云正在修复。如果要count所有记录可以使用一个必然满足的条件,比如下面这样:
```js
const dbCmd = db.command
let res = await db.collection('goods').where({
_db: dbCmd.exists(true)
}).count()
```
响应参数
| 字段 | 类型 | 必填 | 说明 |
......
......@@ -592,7 +592,8 @@ canvas API使用,详见canvas文档。
下面有些正确和错误的写法示例对比:
- 选择器仅支持class 选择器
- 选择器仅支持class 选择器
```css
/* 错误 */
......@@ -637,7 +638,8 @@ canvas API使用,详见canvas文档。
}
```
- nvue的`uni-app`编译模式下,`App.vue` 中的样式,会编译到每个 `nvue文件`。对于共享样式,如果有不合法属性控制台会给出警告,可以通过条件编译`APP-PLUS-NVUE`屏蔽 `App` 中的警告。
- nvue的`uni-app`编译模式下,`App.vue` 中的样式,会编译到每个 `nvue文件`。对于共享样式,如果有不合法属性控制台会给出警告,可以通过条件编译`APP-PLUS-NVUE`屏蔽 `App` 中的警告。
```css
/* 错误 */
/* 控制台警告:
......@@ -659,7 +661,8 @@ WARNING: `-webkit-transform` is not a standard property name (may not be support
/* #endif*/
}
```
```
## Android平台阴影(box-shadow)问题
Android平台weex对阴影样式(`box-shadow`)支持不完善,如设置圆角边框时阴影样式显示不正常、设置动画时在`Android7`上显示不正常等。为解决这些问题,从HBuilderX 2.4.7起,新增`elevation`属性(组件的属性,不是css样式)设置组件的层级,`Number`类型,层级值越大阴影越明显,阴影效果也与组件位置有关,越靠近页面底部阴影效果越明显
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册