提交 fd8e71e6 编写于 作者: Q qiang

Merge branch 'master' of https://github.com/twtylkmrh/uni-app into dev

# Conflicts:
#	packages/uni-template-compiler/lib/script/traverse/data/attrs.js
...@@ -514,7 +514,7 @@ code|message| ...@@ -514,7 +514,7 @@ code|message|
-5002|无效的广告位标识adpid,请使用正确的adpid -5002|无效的广告位标识adpid,请使用正确的adpid
-5003|未开通广告,请在广告平台申请并确保已审核通过 -5003|未开通广告,请在广告平台申请并确保已审核通过
-5004|无广告模块,打包时请配置要使用的广告模块 -5004|无广告模块,打包时请配置要使用的广告模块
-5005|广告加载失败,请尝试重新加载 -5005|广告加载失败,请过段时间重新加载,否则可能触发系统策略导致流量收益下降
-5006|广告未加载完成无法播放,请加载完成后再调show播放 -5006|广告未加载完成无法播放,请加载完成后再调show播放
-5007|无法获取广告配置数据,请尝试重试 -5007|无法获取广告配置数据,请尝试重试
-5008|广告已过期,请重新加载数据 -5008|广告已过期,请重新加载数据
......
...@@ -9,10 +9,22 @@ ...@@ -9,10 +9,22 @@
|url|String|是||需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2',path为下一个页面的路径,下一个页面的onLoad函数可得到传递的参数|:-| |url|String|是||需要跳转的应用内非 tabBar 的页面的路径 , 路径后可以带参数。参数与路径之间使用?分隔,参数键与参数值用=相连,不同参数用&分隔;如 'path?key=value&key2=value2',path为下一个页面的路径,下一个页面的onLoad函数可得到传递的参数|:-|
|animationType|String|否|pop-in|窗口显示的动画效果,详见:[窗口动画](api/router?id=animation)|App| |animationType|String|否|pop-in|窗口显示的动画效果,详见:[窗口动画](api/router?id=animation)|App|
|animationDuration|Number|否|300|窗口动画持续时间,单位为 ms|App| |animationDuration|Number|否|300|窗口动画持续时间,单位为 ms|App|
|events|Object|否||页面间通信接口,用于监听被打开页面发送到当前页面的数据。2.8.9+ 开始支持。||
|success|Function|否||接口调用成功的回调函数|| |success|Function|否||接口调用成功的回调函数||
|fail|Function|否||接口调用失败的回调函数|| |fail|Function|否||接口调用失败的回调函数||
|complete|Function|否||接口调用结束的回调函数(调用成功、失败都会执行)| | |complete|Function|否||接口调用结束的回调函数(调用成功、失败都会执行)| |
**object.success 回调函数**
**参数**
**Object res**
|属性|类型|说明|
|:-|:-|:-|
|eventChannel|[EventChannel](api/router?id=event-channel)|和被打开页面进行通信|
**示例** **示例**
```javascript ```javascript
...@@ -31,6 +43,40 @@ export default { ...@@ -31,6 +43,40 @@ export default {
} }
``` ```
```
// 2.8.9+ 支持
uni.navigateTo({
url: 'pages/test?id=1',
events: {
// 为指定事件添加一个监听器,获取被打开页面传送到当前页面的数据
acceptDataFromOpenedPage: function(data) {
console.log(data)
},
someEvent: function(data) {
console.log(data)
}
...
},
success: function(res) {
// 通过eventChannel向被打开页面传送数据
res.eventChannel.emit('acceptDataFromOpenerPage', { data: 'test' })
}
})
// uni.navigateTo 目标页面 pages/test.vue
onLoad: function(option) {
console.log(option.query)
const eventChannel = this.getOpenerEventChannel()
eventChannel.emit('acceptDataFromOpenedPage', {data: 'test'});
eventChannel.emit('someEvent', {data: 'test'});
// 监听acceptDataFromOpenerPage事件,获取上一页面通过eventChannel传送到当前页面的数据
eventChannel.on('acceptDataFromOpenerPage', function(data) {
console.log(data)
})
}
```
url有长度限制,太长的字符串会传递失败,可使用[窗体通信](https://uniapp.dcloud.io/collocation/frame/communication)[全局变量](https://ask.dcloud.net.cn/article/35021),或`encodeURIComponent`等多种方式解决,如下为`encodeURIComponent`示例。 url有长度限制,太长的字符串会传递失败,可使用[窗体通信](https://uniapp.dcloud.io/collocation/frame/communication)[全局变量](https://ask.dcloud.net.cn/article/35021),或`encodeURIComponent`等多种方式解决,如下为`encodeURIComponent`示例。
```html ```html
<navigator :url="'/pages/test/test?item='+ encodeURIComponent(JSON.stringify(item))"></navigator> <navigator :url="'/pages/test/test?item='+ encodeURIComponent(JSON.stringify(item))"></navigator>
...@@ -179,6 +225,69 @@ uni.navigateBack({ ...@@ -179,6 +225,69 @@ uni.navigateBack({
}); });
``` ```
#### EventChannel@event-channel
2.8.9+ 支持
页面间事件通信通道
**方法**
#### EventChannel.emit(string eventName, any args)
触发一个事件
string eventName
事件名称
any args
事件参数
#### EventChannel.off(string eventName, function fn)
取消监听一个事件。给出第二个参数时,只取消给出的监听函数,否则取消所有监听函数
string eventName
事件名称
function fn
事件监听函数
参数
any args
触发事件参数
#### EventChannel.on(string eventName, function fn)
持续监听一个事件
string eventName
事件名称
function fn
事件监听函数
参数
any args
触发事件参数
#### EventChannel.once(string eventName, function fn)
监听一个事件一次,触发后失效
string eventName
事件名称
function fn
事件监听函数
参数
any args
触发事件参数
Tips: Tips:
* ``navigateTo``, ``redirectTo`` 只能打开非 tabBar 页面。 * ``navigateTo``, ``redirectTo`` 只能打开非 tabBar 页面。
* ``switchTab`` 只能打开 ``tabBar`` 页面。 * ``switchTab`` 只能打开 ``tabBar`` 页面。
......
...@@ -117,3 +117,8 @@ uni.startBeaconDiscovery({ ...@@ -117,3 +117,8 @@ uni.startBeaconDiscovery({
|proximity|number|表示设备距离的枚举值| |proximity|number|表示设备距离的枚举值|
|accuracy|number|iBeacon 设备的距离| |accuracy|number|iBeacon 设备的距离|
|rssi|number|表示设备的信号强度| |rssi|number|表示设备的信号强度|
### 注意事项
* 未启用定位将影响 iBeacon 的正常使用。(相关反馈:[#2027](https://github.com/dcloudio/uni-app/issues/2027)
\ No newline at end of file
...@@ -99,37 +99,6 @@ App和微信小程序的ad组件没有type属性,可以用于banner,也可 ...@@ -99,37 +99,6 @@ App和微信小程序的ad组件没有type属性,可以用于banner,也可
|6|已安装| |6|已安装|
### H5平台 (2.8.5+)
```html
<template>
<view class="content">
<!-- H5平台 adpid在uniAD后台申请,支持复用 App 平台广告位-->
<view class="ad-view">
<ad adpid=""></ad>
</view>
</view>
</template>
```
**注意:**
- `H5` 广告需要校验域名,开发时不支持使用 localhost/ip,本机调试可配置 `host` 测试
- 不支持 file 协议中使用
### H5平台错误码
|code|message|
|:-|:-|
|3001|非法请求|
|3002|未找到此广告位|
|3003|域名未校验,请先通过uniAD后台 [uniad.dcloud.net.cn](https://uniad.dcloud.net.cn/) 效验域名|
|3004|遇到错误,请稍后重试|
|3005|未找到H5广告配置信息|
|3006|未找到任何广告位|
|3007|域名未校验或包含端口号,请先通过 [uniad.dcloud.net.cn](https://uniad.dcloud.net.cn/) 效验域名|
**示例:** **示例:**
```html ```html
......
...@@ -606,6 +606,8 @@ domModule.addRule('fontFace', { ...@@ -606,6 +606,8 @@ domModule.addRule('fontFace', {
``<template/>`` 和 ``<block/>`` 并不是一个组件,它们仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。 ``<template/>`` 和 ``<block/>`` 并不是一个组件,它们仅仅是一个包装元素,不会在页面中做任何渲染,只接受控制属性。
``<block/>`` 在不同的平台表现存在一定差异,推荐统一使用 ``<template/>``。
**代码示例** **代码示例**
```html ```html
...@@ -1293,8 +1295,6 @@ export default { ...@@ -1293,8 +1295,6 @@ export default {
|:-:|:-:|:-:|:-:|:-:|:-:|:-:| |:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|√(2.5.5+,仅支持vue,并要求v3编译器)|√|x|x|x|x|x| |√(2.5.5+,仅支持vue,并要求v3编译器)|√|x|x|x|x|x|
renderjs,以 vue 组件的写法运行在 view 层。
### 使用方式 ### 使用方式
设置 script 节点的 lang 为 renderjs 设置 script 节点的 lang 为 renderjs
...@@ -1336,13 +1336,14 @@ renderjs,以 vue 组件的写法运行在 view 层。 ...@@ -1336,13 +1336,14 @@ renderjs,以 vue 组件的写法运行在 view 层。
### 注意事项 ### 注意事项
* 可以使用 vue 组件的声明周期不可以使用 App、Page 的声明周期 * 目前仅支持内联使用。
* 可以使用 dom、bom API,不可直接访问逻辑层数据,不可以使用 uni 相关接口(如:uni.request) * 不要直接引用大型类库,推荐通过动态创建 script 方式引用。
* 视图层和逻辑层通讯方式与 [WXS](frame?id=wxs) 一致,另外可以通过 this.$ownerInstance 获取当前组件的 ComponentDescriptor 实例 * 可以使用 vue 组件的生命周期不可以使用 App、Page 的生命周期
* 观测更新的数据在 view 层可以直接访问到 * 视图层和逻辑层通讯方式与 [WXS](frame?id=wxs) 一致,另外可以通过 this.$ownerInstance 获取当前组件的 ComponentDescriptor 实例。
* 不要直接引用大型类库,推荐通过动态创建 script 方式引用 * 观测更新的数据在视图层可以直接访问到。
* view 层的页面引用资源的路径相对于根目录计算,例如:./static/test.js * APP 端视图层的页面引用资源的路径相对于根目录计算,例如:./static/test.js。
* 目前仅支持内联使用 * APP 端可以使用 dom、bom API,不可直接访问逻辑层数据,不可以使用 uni 相关接口(如:uni.request)
* H5 端逻辑层和视图层实际运行在同一个环境中,相当于使用 mixin 方式,可以直接访问逻辑层数据。
## 致谢 ## 致谢
......
...@@ -261,6 +261,14 @@ vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project ...@@ -261,6 +261,14 @@ vue create -p dcloudio/uni-preset-vue#alpha my-alpha-project
更多支持的下载方式,请参考这个插件的说明:[download-git-repo](https://www.npmjs.com/package/download-git-repo) 更多支持的下载方式,请参考这个插件的说明:[download-git-repo](https://www.npmjs.com/package/download-git-repo)
#### 修改依赖为指定版本
1. 查看 HBuilderX 对应的 NPM 依赖版本: 打开 [NPM版本记录](https://www.npmjs.com/package/@dcloudio/vue-cli-plugin-hbuilderx),版本号 2.0.0- 后面是与 HBuilderX 对应的版本号且小版本不会超过9,比如 HBuilderX 2.7.5.20200518 对应的版本号 2.0.0-27520200518001,2.0.0-271420200618 对应的为 2.0.0-27920200618002。
2. 批量修改 package.json 中 uni 相关依赖为指定的版本号(去掉版本号前面 ^)。
3. 对于有变化的依赖进行增删,提示不存指定版本的依赖可以保留原始版本或者删除,运行时提示缺少的依赖自行安装。
### 运行、发布uni-app ### 运行、发布uni-app
``` ```
......
#### 2.8.7.20200820-alpha
* 【uni-app插件】
+ App-Android平台 修复 调用 plus.io.requestFileSystem 概率性出现`Failed to find taskCenter`错误信息的Bug [详情](https://ask.dcloud.net.cn/question/103902)
+ App-Android平台 修复 2.8.4版引出的 uni.request 请求 cookie 未正确处理可能引起网络请求失败的Bug [详情](https://ask.dcloud.net.cn/question/105139)
+ App-Android平台 修复 2.8.4版引出的 uni.request 请求返回的 http 响应头数据中 key 名称变成小写的Bug [详情](https://ask.dcloud.net.cn/question/103995)
+ 小程序平台 修复 v-for 中事件使用部分复杂的表达式编译报错的Bug
+ 小程序平台 修复 v-for 中嵌套 v-if 时部分复杂表达式编译后运行报错的Bug [#2011](https://github.com/dcloudio/uni-app/issues/2011)
+ 小程序平台 修复 修复部分自定义事件无参数时报错的Bug [#2021](https://github.com/dcloudio/uni-app/issues/2011)
+ 微信小程序平台 修复 属性使用复杂的对象表达式小程序开发工具编译报错的Bug [详情](https://ask.dcloud.net.cn/question/103944)
* 【uniCloud】
+ 优化 云函数插件支持写入components、js_sdk、static目录
+ web控制台 阿里云 新增 数据库集合导入导出功能 [详情](https://uniapp.dcloud.net.cn/uniCloud/cf-database?id=export)
+ web控制台 腾讯云 新增 资源概况页面
+ 短信发送 新增 3个通知类短信模板 [详情](https://uniapp.dcloud.net.cn/uniCloud/send-sms)
* 【App插件(含5+App和uni-app的App端)】
+ uni-AD 新增 设置开屏全屏显示、广告源权重功能
+ Android平台 修复 uni-AD 开屏显示穿山甲广告点击跳过按钮后,再点击splash页面可能导致应用闪退的Bug [详情](https://ask.dcloud.net.cn/question/103601)
+ iOS平台 更新 UniPush 使用的个推SDK版本为2.4.5.1,解决在部分设备上获取唯一标识可能重复的问题
+ iOS平台 更新 uni-AD 腾讯广点通SDK版本为4.11.10,今日头条穿山甲SDK版本为3.1.0.5
+ iOS平台 修复 直播推流 LivePusher 监听事件后不触发回调的Bug
#### 2.8.4.20200805-alpha #### 2.8.4.20200805-alpha
* 【uni-app插件】 * 【uni-app插件】
+ App平台、H5平台 优化 uni.setTabBarItem 支持 pagePath 配置 + App平台、H5平台 优化 uni.setTabBarItem 支持 pagePath 配置
......
#### 2.8.8.20200820
* 【uni-app插件】
+ App-Android平台 修复 调用 plus.io.requestFileSystem 概率性出现`Failed to find taskCenter`错误信息的Bug [详情](https://ask.dcloud.net.cn/question/103902)
+ App-Android平台 修复 2.8.4版引出的 uni.request 请求 cookie 未正确处理可能引起网络请求失败的Bug [详情](https://ask.dcloud.net.cn/question/105139)
+ App-Android平台 修复 2.8.4版引出的 Android4.4系统设备运行崩溃的Bug
+ 小程序平台 修复 修复部分自定义事件无参数时报错的Bug [#2021](https://github.com/dcloudio/uni-app/issues/2011)
+ 小程序平台 修复 v-for 嵌套 v-if 内使用到全局方法处理当前作用域内数据时报错的Bug [详情](https://ask.dcloud.net.cn/question/105010)
* 【uniCloud】
+ 阿里云 升级mongoDB到4.0版本,现已支持地理位置
+ 优化 云函数插件支持写入components、js_sdk、static目录
+ web控制台 阿里云 新增 数据库集合导入导出功能 [详情](https://uniapp.dcloud.net.cn/uniCloud/cf-database?id=export)
+ web控制台 腾讯云 新增 资源概况页面
+ 短信发送 新增 3个通知类短信模板 [详情](https://uniapp.dcloud.net.cn/uniCloud/send-sms)
* 【App插件(含5+App和uni-app的App端)】
+ uni-AD 新增 信息流和激励视频的多广告源在App同次启动时随机穿插,可提升广告收益
+ uni-AD 新增 设置开屏全屏显示
+ Android平台 修复 uni-AD 开屏显示穿山甲广告点击跳过按钮后,再点击splash页面可能导致应用闪退的Bug [详情](https://ask.dcloud.net.cn/question/103601)
+ iOS平台 更新 uni-AD 腾讯广点通SDK版本为4.11.10,今日头条穿山甲SDK版本为3.1.0.5
+ iOS平台 修复 直播推流 LivePusher 监听事件后不触发回调的Bug
#### 2.8.6.20200814 #### 2.8.6.20200814
* 【uni-app插件】 * 【uni-app插件】
+ App-Android平台 修复 2.8.4版引出的 uni.request 请求返回的 http 响应头数据中 key 名称变成小写的Bug [详情](https://ask.dcloud.net.cn/question/103995)
+ 小程序平台 修复 v-for 中事件使用部分复杂的表达式编译报错的Bug + 小程序平台 修复 v-for 中事件使用部分复杂的表达式编译报错的Bug
+ 小程序平台 修复 v-for 中嵌套 v-if 时部分复杂表达式编译后运行报错的Bug [#2011](https://github.com/dcloudio/uni-app/issues/2011) + 小程序平台 修复 v-for 中嵌套 v-if 时部分复杂表达式编译后运行报错的Bug [#2011](https://github.com/dcloudio/uni-app/issues/2011)
+ 微信小程序平台 修复 属性使用复杂的对象表达式小程序开发工具编译报错的Bug [详情](https://ask.dcloud.net.cn/question/103944) + 微信小程序平台 修复 属性使用复杂的对象表达式小程序开发工具编译报错的Bug [详情](https://ask.dcloud.net.cn/question/103944)
+ App-Android平台 修复 2.8.4版引出的 uni.request 请求返回的 http 响应头数据中 key 名称变成小写的Bug [详情](https://ask.dcloud.net.cn/question/103995)
* 【App插件(含5+App和uni-app的App端)】 * 【App插件(含5+App和uni-app的App端)】
+ iOS平台 更新 UniPush 使用的个推SDK版本为2.4.5.1,解决在部分设备上获取唯一标识可能重复的问题 + iOS平台 更新 UniPush 使用的个推SDK版本为2.4.5.1,解决在部分设备上获取唯一标识可能重复的问题
......
...@@ -434,7 +434,6 @@ let res = await db.collection('goods').where({ ...@@ -434,7 +434,6 @@ let res = await db.collection('goods').where({
| 字段 | 类型 | 必填 | 说明 | | 字段 | 类型 | 必填 | 说明 |
| --------- | ------- | ---- | ------------------------ | | --------- | ------- | ---- | ------------------------ |
| total | Integer | 否 | 计数结果 | | total | Integer | 否 | 计数结果 |
| requestId | string | 否 | 请求序列号,用于错误排查 |
...@@ -755,6 +754,13 @@ let res = await collection.where({ ...@@ -755,6 +754,13 @@ let res = await collection.where({
}).remove() }).remove()
``` ```
响应参数
| 字段 | 类型 | 必填 | 说明 |
| --------- | ------- | ---- | ------------------------ |
| deleted | Integer | 否 | 删除的记录数量 |
## 更新文档 ## 更新文档
### 更新指定文档 ### 更新指定文档
...@@ -1530,7 +1536,7 @@ db.runTransaction(callback: function, times: number) ...@@ -1530,7 +1536,7 @@ db.runTransaction(callback: function, times: number)
```javascript ```javascript
const db = uniCloud.database() const db = uniCloud.database()
const _ = db.command const dbCmd = db.command
exports.main = async (event) => { exports.main = async (event) => {
try { try {
const result = await db.runTransaction(async transaction => { const result = await db.runTransaction(async transaction => {
...@@ -1540,11 +1546,11 @@ exports.main = async (event) => { ...@@ -1540,11 +1546,11 @@ exports.main = async (event) => {
if (aaaRes.data && bbbRes.data) { if (aaaRes.data && bbbRes.data) {
try { try {
const updateAAARes = await transaction.collection('account').doc('aaa').update({ const updateAAARes = await transaction.collection('account').doc('aaa').update({
amount: _.inc(-10) amount: dbCmd.inc(-10)
}) })
const updateBBBRes = await transaction.collection('account').doc('bbb').update({ const updateBBBRes = await transaction.collection('account').doc('bbb').update({
amount: _.inc(10) amount: dbCmd.inc(10)
}) })
console.log(`transaction succeeded`) console.log(`transaction succeeded`)
...@@ -1603,7 +1609,7 @@ db.startTransaction() ...@@ -1603,7 +1609,7 @@ db.startTransaction()
```javascript ```javascript
const db = uniCloud.database() const db = uniCloud.database()
const _ = db.command const dbCmd = db.command
exports.main = async (event) => { exports.main = async (event) => {
const transaction = await db.startTransaction() const transaction = await db.startTransaction()
...@@ -1614,11 +1620,11 @@ exports.main = async (event) => { ...@@ -1614,11 +1620,11 @@ exports.main = async (event) => {
if (aaaRes.data && bbbRes.data) { if (aaaRes.data && bbbRes.data) {
const updateAAARes = await transaction.collection('account').doc('aaa').update({ const updateAAARes = await transaction.collection('account').doc('aaa').update({
amount: _.inc(-10) amount: dbCmd.inc(-10)
}) })
const updateBBBRes = await transaction.collection('account').doc('bbb').update({ const updateBBBRes = await transaction.collection('account').doc('bbb').update({
amount: _.inc(10) amount: dbCmd.inc(10)
}) })
await transaction.commit() await transaction.commit()
...@@ -2832,7 +2838,8 @@ let res = await db.collection('orders').aggregate() ...@@ -2832,7 +2838,8 @@ let res = await db.collection('orders').aggregate()
- books 的 stock 字段 大于或等于 orders 的 quantityorders 字段 - books 的 stock 字段 大于或等于 orders 的 quantityorders 字段
```js ```js
const db = cloud.database() const db = cloud.database()
const $ = db.command.aggregate const dbCmd = db.command
const $ = dbCmd.aggregate
let res = await db.collection('orders').aggregate() let res = await db.collection('orders').aggregate()
.lookup({ .lookup({
from: 'books', from: 'books',
...@@ -2841,7 +2848,7 @@ let res = await db.collection('orders').aggregate() ...@@ -2841,7 +2848,7 @@ let res = await db.collection('orders').aggregate()
order_quantity: '$quantity' order_quantity: '$quantity'
}, },
pipeline: $.pipeline() pipeline: $.pipeline()
.match(_.expr($.and([ .match(dbCmd.expr($.and([
$.eq(['$title', '$$order_book']), $.eq(['$title', '$$order_book']),
$.gte(['$stock', '$$order_quantity']) $.gte(['$stock', '$$order_quantity'])
]))) ])))
...@@ -2987,9 +2994,9 @@ match({ ...@@ -2987,9 +2994,9 @@ match({
``` ```
```js ```js
// 使用操作符 // 使用操作符
const _ = db.command const dbCmd = db.command
match({ match({
age: _.gt(18) age: dbCmd.gt(18)
}) })
``` ```
...@@ -3029,12 +3036,12 @@ match 过滤出文档后,还可以与其他流水线阶段配合使用。 ...@@ -3029,12 +3036,12 @@ match 过滤出文档后,还可以与其他流水线阶段配合使用。
比如下面这个例子,我们使用 group 进行搭配,计算 score 字段大于 80 的文档数量: 比如下面这个例子,我们使用 group 进行搭配,计算 score 字段大于 80 的文档数量:
```js ```js
const _ = db.command const dbCmd = db.command
const $ = _.aggregate const $ = dbCmd.aggregate
let res = await db.collection('articles') let res = await db.collection('articles')
.aggregate() .aggregate()
.match({ .match({
score: _.gt(80) score: dbCmd.gt(80)
}) })
.group({ .group({
_id: null, _id: null,
......
...@@ -229,7 +229,7 @@ uni-app项目根据路由模式不同需要做不同的配置 ...@@ -229,7 +229,7 @@ uni-app项目根据路由模式不同需要做不同的配置
## 阿里云使用限制 ## 阿里云使用限制
目前阿里云没前端网页部署限制为最大存储空间用量为2GB 目前阿里云目前端网页部署限制为最大存储空间用量2GB
### 名词解释 ### 名词解释
......
# uniCloud 更新日志 # uniCloud 更新日志
====================================== ======================================
#### 2020-08-20
+ 阿里云 升级mongoDB到4.0版本,现已支持地理位置
+ 优化 云函数插件支持写入components、js_sdk、static目录
#### 2020-08-12 #### 2020-08-12
+ web控制台 阿里云 新增 数据库集合导入导出功能 [详情](https://uniapp.dcloud.net.cn/uniCloud/cf-database?id=export) + web控制台 阿里云 新增 数据库集合导入导出功能 [详情](https://uniapp.dcloud.net.cn/uniCloud/cf-database?id=export)
+ web控制台 腾讯云 新增 资源概况页面 + web控制台 腾讯云 新增 资源概况页面
......
...@@ -19,6 +19,7 @@ web体验地址:[https://duolingo.91ddedu.com](https://duolingo.91ddedu.com) ...@@ -19,6 +19,7 @@ web体验地址:[https://duolingo.91ddedu.com](https://duolingo.91ddedu.com)
- [国云商城](https://ext.dcloud.net.cn/plugin?id=1989):优秀的电商系统,购买本系统,快速上线属于你自己的电商应用。 - [国云商城](https://ext.dcloud.net.cn/plugin?id=1989):优秀的电商系统,购买本系统,快速上线属于你自己的电商应用。
- [云上商城](https://ext.dcloud.net.cn/plugin?id=1989):完整的线上生活超市,根据当前定位,就近匹配仓库。 - [云上商城](https://ext.dcloud.net.cn/plugin?id=1989):完整的线上生活超市,根据当前定位,就近匹配仓库。
- 纸塘壁纸:精美壁纸小程序。微信小程序搜索“纸塘壁纸PRO”
- 纸塘日记:简约而优雅的日记本。[iOS App](https://apps.apple.com/cn/app/id1442487677)[Android App](https://android.myapp.com/myapp/detail.htm?apkName=com.ztdiary.piaoshi) - 纸塘日记:简约而优雅的日记本。[iOS App](https://apps.apple.com/cn/app/id1442487677)[Android App](https://android.myapp.com/myapp/detail.htm?apkName=com.ztdiary.piaoshi)
- 开步运动:安徽本地体育赛事App。[iOS App](https://apps.apple.com/cn/app/id1518760851)[Android App](https://android.myapp.com/myapp/detail.htm?apkName=uni.UNIBE1CDD0) - 开步运动:安徽本地体育赛事App。[iOS App](https://apps.apple.com/cn/app/id1518760851)[Android App](https://android.myapp.com/myapp/detail.htm?apkName=uni.UNIBE1CDD0)
- 月嫂了不起:母婴护理师、育婴师的接单和学习平台。微信小程序搜索“月嫂了不起” - 月嫂了不起:母婴护理师、育婴师的接单和学习平台。微信小程序搜索“月嫂了不起”
......
...@@ -240,7 +240,11 @@ afterStageAppend: function({ ...@@ -240,7 +240,11 @@ afterStageAppend: function({
+ 不使用聚合时mixinCondition会在没有where的时候在collection方法之后插入where,有where时会跟where条件进行合并,取原条件且mixinCondition。 + 不使用聚合时mixinCondition会在没有where的时候在collection方法之后插入where,有where时会跟where条件进行合并,取原条件且mixinCondition。
+ 使用聚合时会在第一阶段插入match使用混入的条件,如果有blockedField会插入在blockedField对应的project之前 + 使用聚合时会在第一阶段插入match使用混入的条件,如果有blockedField会插入在blockedField对应的project之前
+ mixinCondition会对除插入以外的所有操作生效 + mixinCondition会对除插入以外的所有操作生效
+ 使用mixinCondition时客户端不可使用`collection('xxx').doc('xxx')`方法 + 使用mixinCondition时客户端不可使用`collection('xxx').doc('xxx')`方法(1.0.8版本起即使有mixinCondition客户端也可以使用doc方法)
- 关于联表查询 - 关于联表查询
+ 连接的数据表也会受所配置的权限规则中对应数据表规则限制,主要是read,目前连接的数据表不会受blockedField限制 + 连接的数据表也会受所配置的权限规则中对应数据表规则限制,主要是read,目前连接的数据表不会受blockedField限制
## 参考
在线通讯录项目,完整的演示了如何基于clientDB在客户端代码里实现数据的增删改查,是学习clientDB的重要示例项目。该项目插件地址:[https://ext.dcloud.net.cn/plugin?id=2574](https://ext.dcloud.net.cn/plugin?id=2574)
\ No newline at end of file
此差异已折叠。
...@@ -74,6 +74,7 @@ const unipayIns = unipay.initWeixin({ ...@@ -74,6 +74,7 @@ const unipayIns = unipay.initWeixin({
| 参数名 | 类型 | 必填| 默认值 | 说明 | | 参数名 | 类型 | 必填| 默认值 | 说明 |
| :-------------: | :-----: | :--:| :--------------------------------------------------:| :------------------------------------:| | :-------------: | :-----: | :--:| :--------------------------------------------------:| :------------------------------------:|
| appId | String | 是 | - | 当前应用在对应支付平台的 appId | | appId | String | 是 | - | 当前应用在对应支付平台的 appId |
| mchId | String | 是 | - | 商户号 |
| privateKey | String | 是 | - | 应用私钥字符串 | | privateKey | String | 是 | - | 应用私钥字符串 |
| alipayPublicKey | String | 否 | - | 支付宝公钥,验签使用 | | alipayPublicKey | String | 否 | - | 支付宝公钥,验签使用 |
| keyType | String | 否 | PKCS8 | 应用私钥字符串类型 | | keyType | String | 否 | PKCS8 | 应用私钥字符串类型 |
...@@ -88,6 +89,7 @@ const unipayIns = unipay.initWeixin({ ...@@ -88,6 +89,7 @@ const unipayIns = unipay.initWeixin({
```js ```js
const unipayIns = unipay.initAlipay({ const unipayIns = unipay.initAlipay({
appId: 'your appId', appId: 'your appId',
mchId: 'your mchId',
privateKey: 'your privateKey', privateKey: 'your privateKey',
// 如果不使用证书(普通公钥模式)需要alipayPublicKey // 如果不使用证书(普通公钥模式)需要alipayPublicKey
alipayPublicKey: 'you alipayPublicKey', // 使用支付时需传递此值做返回结果验签 alipayPublicKey: 'you alipayPublicKey', // 使用支付时需传递此值做返回结果验签
...@@ -98,6 +100,10 @@ const unipayIns = unipay.initAlipay({ ...@@ -98,6 +100,10 @@ const unipayIns = unipay.initAlipay({
}) })
``` ```
**常见问题**
- 支付宝支付时遇到`error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag`类似的错误时请确认一下自己的私钥格式,如果不是PKCS8需要在初始化时传入keyType参数,值为对应的私钥格式
## Api 列表 ## Api 列表
### 获取支付参数 ### 获取支付参数
......
...@@ -12,5 +12,5 @@ ...@@ -12,5 +12,5 @@
"message": "chore(release): publish %s" "message": "chore(release): publish %s"
} }
}, },
"version": "2.0.0-alpha-28420200805004" "version": "2.0.0-28720200819002"
} }
{ {
"name": "@dcloudio/uni-app-plus-nvue", "name": "@dcloudio/uni-app-plus-nvue",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app app-plus-nvue", "description": "uni-app app-plus-nvue",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-app-plus", "name": "@dcloudio/uni-app-plus",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app app-plus", "description": "uni-app app-plus",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-automator", "name": "@dcloudio/uni-automator",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app automator", "description": "uni-app automator",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-cli-shared", "name": "@dcloudio/uni-cli-shared",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-cli-shared", "description": "uni-cli-shared",
"main": "lib/index.js", "main": "lib/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-h5-ui", "name": "@dcloudio/uni-h5-ui",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app h5 ui", "description": "uni-app h5 ui",
"main": "dist/index.umd.min.js", "main": "dist/index.umd.min.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-h5", "name": "@dcloudio/uni-h5",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app h5", "description": "uni-app h5",
"main": "dist/index.umd.min.js", "main": "dist/index.umd.min.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-migration", "name": "@dcloudio/uni-migration",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app migration", "description": "uni-app migration",
"main": "lib/index.js", "main": "lib/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-mp-alipay", "name": "@dcloudio/uni-mp-alipay",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app mp-alipay", "description": "uni-app mp-alipay",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-mp-baidu", "name": "@dcloudio/uni-mp-baidu",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app mp-baidu", "description": "uni-app mp-baidu",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-mp-qq", "name": "@dcloudio/uni-mp-qq",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app mp-qq", "description": "uni-app mp-qq",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-mp-toutiao", "name": "@dcloudio/uni-mp-toutiao",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app mp-toutiao", "description": "uni-app mp-toutiao",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-mp-vue", "name": "@dcloudio/uni-mp-vue",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "@dcloudio/uni-mp-vue", "description": "@dcloudio/uni-mp-vue",
"main": "dist/vue.runtime.esm.js", "main": "dist/vue.runtime.esm.js",
"module": "dist/vue.runtime.esm.js", "module": "dist/vue.runtime.esm.js",
......
{ {
"name": "@dcloudio/uni-mp-weixin", "name": "@dcloudio/uni-mp-weixin",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app mp-weixin", "description": "uni-app mp-weixin",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-quickapp-native", "name": "@dcloudio/uni-quickapp-native",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app quickapp-native", "description": "uni-app quickapp-native",
"main": "dist/vue.prod.js", "main": "dist/vue.prod.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-quickapp-webview", "name": "@dcloudio/uni-quickapp-webview",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app quickapp-webview", "description": "uni-app quickapp-webview",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-stat", "name": "@dcloudio/uni-stat",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "", "description": "",
"main": "dist/index.js", "main": "dist/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/uni-template-compiler", "name": "@dcloudio/uni-template-compiler",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-template-compiler", "description": "uni-template-compiler",
"main": "lib/index.js", "main": "lib/index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/vue-cli-plugin-hbuilderx", "name": "@dcloudio/vue-cli-plugin-hbuilderx",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "HBuilderX plugin for vue-cli 3", "description": "HBuilderX plugin for vue-cli 3",
"main": "index.js", "main": "index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/vue-cli-plugin-uni-optimize", "name": "@dcloudio/vue-cli-plugin-uni-optimize",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app optimize plugin for vue-cli 3", "description": "uni-app optimize plugin for vue-cli 3",
"main": "index.js", "main": "index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/vue-cli-plugin-uni", "name": "@dcloudio/vue-cli-plugin-uni",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app plugin for vue-cli 3", "description": "uni-app plugin for vue-cli 3",
"main": "index.js", "main": "index.js",
"repository": { "repository": {
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
"author": "fxy060608", "author": "fxy060608",
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@dcloudio/uni-stat": "^2.0.0-alpha-28420200805004", "@dcloudio/uni-stat": "^2.0.0-28720200819002",
"buffer-json": "^2.0.0", "buffer-json": "^2.0.0",
"copy-webpack-plugin": "^5.1.1", "copy-webpack-plugin": "^5.1.1",
"cross-env": "^5.2.0", "cross-env": "^5.2.0",
......
{ {
"name": "@dcloudio/webpack-uni-mp-loader", "name": "@dcloudio/webpack-uni-mp-loader",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "webpack-uni-mp-loader", "description": "webpack-uni-mp-loader",
"main": "index.js", "main": "index.js",
"repository": { "repository": {
......
{ {
"name": "@dcloudio/webpack-uni-pages-loader", "name": "@dcloudio/webpack-uni-pages-loader",
"version": "2.0.0-alpha-28420200805004", "version": "2.0.0-28720200819002",
"description": "uni-app pages.json loader", "description": "uni-app pages.json loader",
"main": "lib/index.js", "main": "lib/index.js",
"repository": { "repository": {
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
"strip-json-comments": "^2.0.1" "strip-json-comments": "^2.0.1"
}, },
"uni-app": { "uni-app": {
"compilerVersion": "2.8.4" "compilerVersion": "2.8.7"
}, },
"gitHead": "e62f0398362f2f9de0bf5726046d7951c88d6b1d" "gitHead": "e62f0398362f2f9de0bf5726046d7951c88d6b1d"
} }
...@@ -133,7 +133,7 @@ export function uploadFile ({ ...@@ -133,7 +133,7 @@ export function uploadFile ({
} }
Promise Promise
.all(files.map(({ file, uri }) => file instanceof File ? Promise.resolve(file) : urlToFile(uri))) .all(files.map(({ file, uri }) => file instanceof Blob ? Promise.resolve(file) : urlToFile(uri)))
.then(upload) .then(upload)
.catch(() => { .catch(() => {
setTimeout(() => { setTimeout(() => {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册