Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-zh
提交
fa96cfdc
unidocs-zh
项目概览
DCloud
/
unidocs-zh
通知
3598
Star
108
Fork
921
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
120
列表
看板
标记
里程碑
合并请求
109
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
unidocs-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
120
Issue
120
列表
看板
标记
里程碑
合并请求
109
合并请求
109
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
fa96cfdc
编写于
7月 07, 2022
作者:
DCloud_JSON
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
https://gitee.com/dcloud/unidocs-zh
上级
dcae5dc6
bacc968e
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
173 addition
and
55 deletion
+173
-55
docs/.vuepress/theme/config/navbar.js
docs/.vuepress/theme/config/navbar.js
+1
-1
docs/.vuepress/theme/config/redirectRouter.js
docs/.vuepress/theme/config/redirectRouter.js
+4
-0
docs/_navbar.md
docs/_navbar.md
+0
-31
docs/api/getEnterOptionsSync.md
docs/api/getEnterOptionsSync.md
+8
-5
docs/api/getLaunchOptionsSync.md
docs/api/getLaunchOptionsSync.md
+5
-1
docs/api/plugins/payment.md
docs/api/plugins/payment.md
+137
-2
docs/api/ui/locale.md
docs/api/ui/locale.md
+1
-1
docs/tutorial/app-oauth-google.md
docs/tutorial/app-oauth-google.md
+0
-1
docs/tutorial/app-payment-aip.md
docs/tutorial/app-payment-aip.md
+15
-11
docs/uniCloud/cf-functions.md
docs/uniCloud/cf-functions.md
+2
-2
未找到文件。
docs/.vuepress/theme/config/navbar.js
浏览文件 @
fa96cfdc
...
@@ -141,7 +141,7 @@ export const navbar = [
...
@@ -141,7 +141,7 @@ export const navbar = [
},
},
{
{
text
:
'
uni 小程序 sdk
'
,
text
:
'
uni 小程序 sdk
'
,
link
:
'
https://nativesupport.dcloud.net.cn/
UniMPDocs/SDKDownload/android
'
,
link
:
'
https://nativesupport.dcloud.net.cn/
README
'
,
type
:
"
link
"
,
type
:
"
link
"
,
target
:
'
_blank
'
,
target
:
'
_blank
'
,
needOutbound
:
false
needOutbound
:
false
...
...
docs/.vuepress/theme/config/redirectRouter.js
浏览文件 @
fa96cfdc
...
@@ -51,6 +51,10 @@ const routerMap = {
...
@@ -51,6 +51,10 @@ const routerMap = {
'
/api/a-d/rewarded-video-ad
'
:
'
/api/a-d/rewarded-video.html
'
,
'
/api/a-d/rewarded-video-ad
'
:
'
/api/a-d/rewarded-video.html
'
,
'
/api/ad/interstitial-ad
'
:
'
/api/a-d/interstitial.html
'
,
'
/api/ad/interstitial-ad
'
:
'
/api/a-d/interstitial.html
'
,
'
/api/ui/navigate
'
:
'
/api/router.html
'
,
'
/api/ui/navigate
'
:
'
/api/router.html
'
,
'
/api/plugins/getLaunchOptionsSync
'
:
'
/api/getLaunchOptionsSync.html
'
,
'
/api/plugins/getEnterOptionsSync
'
:
'
/api/getEnterOptionsSync.html
'
,
'
/api/plugins/getLaunchOptionsSync.html
'
:
'
/api/getLaunchOptionsSync.html
'
,
'
/api/plugins/getEnterOptionsSync.html
'
:
'
/api/getEnterOptionsSync.html
'
,
'
/platform
'
:
'
/tutorial/platform.html
'
,
'
/platform
'
:
'
/tutorial/platform.html
'
,
'
/nvue-event
'
:
'
/tutorial/nvue-event.html
'
,
'
/nvue-event
'
:
'
/tutorial/nvue-event.html
'
,
...
...
docs/_navbar.md
已删除
100644 → 0
浏览文件 @
dcae5dc6
*
[
介绍
](
README.md
)
*
[
框架
](
collocation/pages.md
)
*
[
组件
](
component/README.md
)
*
[
API
](
api/README.md
)
*
[
uniCloud
](
uniCloud/README.md
)
*
[
其它规范
](
http://www.html5plus.org/doc/h5p.html
)
-
[
App扩展规范HTML5 Plus
](
http://www.html5plus.org/doc/h5p.html
)
-
[
微信小程序
](
https://developers.weixin.qq.com/miniprogram/dev/framework/
)
-
[
支付宝小程序
](
https://docs.alipay.com/mini/developer/getting-started
)
-
[
百度小程序
](
https://smartprogram.baidu.com/docs/develop/tutorial/codedir/
)
-
[
字节跳动小程序
](
https://developer.toutiao.com/dev/cn/mini-app/develop/component/introduction/basic-component
)
-
[
飞书小程序
](
https://open.feishu.cn/document/uYjL24iN/uUDNzUjL1QzM14SN0MTN
)
-
[
钉钉小程序
](
https://developers.dingtalk.com/document/app/introduction-to-dingtalk-mini-programs
)
-
[
QQ小程序
](
https://q.qq.com/wiki/develop/miniprogram/frame/
)
-
[
快手小程序
](
https://mp.kuaishou.com/docs/develop/frame/config/conf_appjson.html
)
-
[
京东小程序
](
https://mp-docs.jd.com/framework/
)
-
[
华为快应用
](
https://developer.huawei.com/consumer/cn/doc/development/quickApp-References/webview-component-view
)
-
[
360小程序
](
https://mp.360.cn/doc/miniprogram/dev/#/view
)
-
[
Weex
](
http://doc.weex.io/zh/guide/introduction.html
)
<ul
class=
"nav-href"
>
<li
class=
"ext-link"
><a
href=
"//ext.dcloud.net.cn/"
target=
"__blank"
>
插件市场
</a></li>
<li><a
id=
"link-to-wish"
href=
"javascript:void(0);"
>
需求墙
</a></li>
<li><a
href=
"//dev.dcloud.net.cn/sponsor/?channel=uniapp"
target=
"__blank"
style=
"color:#FF6600!important;"
><img
src=
"https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/45e691f0-4f3d-11eb-b680-7980c8a877b8.png"
class=
"heart"
>
赞助我们
</a></li>
</ul>
<div
class=
"github"
>
<a
href=
"//github.com/dcloudio/uni-app"
target=
"_blank"
>
<img
src=
"https://bjetxgzv.cdn.bspapp.com/VKCEYUGU-uni-app-doc/44f8d690-4f3d-11eb-b680-7980c8a877b8.svg"
>
</a>
</div>
docs/api/getEnterOptionsSync.md
浏览文件 @
fa96cfdc
### uni.getEnterOptionsSync()
### uni.getEnterOptionsSync()
#### App、web 端
获取启动时的参数。
获取启动时的参数。返回值与App.onLaunch的回调参数一致
#### 小程序端
注意:各平台在启动时,参数获取存在差异,详细如下:
获取本次启动时的参数。如果当前小程序是冷启动,则返回值与 App.onLaunch 的回调参数一致;如果当前是热启动,则返回值与 App.onShow 一致。
-
App平台:返回值与App.onLaunch的回调参数一致;
-
Web平台:返回值与App.onLaunch的回调参数一致,不同Vue版本支持情况有差异:
*
`vue3`
项目:uni-app 3.2.13+ 支持;
*
`vue2`
项目:uni-app 3.5.1+ 支持。
-
小程序平台:如果当前小程序是冷启动,则返回值与 App.onLaunch 的回调参数一致;如果当前是热启动,则返回值与 App.onShow 一致。关于微信小程序冷启动热启动的概念,
[
详见
](
https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/operating-mechanism.html
)
关于微信小程序冷启动热启动的概念,
[
详见
](
https://developers.weixin.qq.com/miniprogram/dev/framework/runtime/operating-mechanism.html
)
**平台兼容性说明**
|App|web|微信小程序|支付宝小程序|字节跳动小程序|快手小程序|QQ小程序|百度小程序|京东小程序|钉钉小程序|飞书小程序|
|App|web|微信小程序|支付宝小程序|字节跳动小程序|快手小程序|QQ小程序|百度小程序|京东小程序|钉钉小程序|飞书小程序|
|:-|:-|:-|:-|:-|:-|:-|:-|:-|:-|:-|
|:-|:-|:-|:-|:-|:-|:-|:-|:-|:-|:-|
...
...
docs/api/getLaunchOptionsSync.md
浏览文件 @
fa96cfdc
...
@@ -4,7 +4,11 @@
...
@@ -4,7 +4,11 @@
|App|web|微信小程序|支付宝小程序|字节跳动小程序|QQ小程序|快手小程序|钉钉小程序|飞书小程序|百度小程序|京东小程序|
|App|web|微信小程序|支付宝小程序|字节跳动小程序|QQ小程序|快手小程序|钉钉小程序|飞书小程序|百度小程序|京东小程序|
|:-|:-|:-|:-|:-|:-|:-|:-|:-|:-|:-|
|:-|:-|:-|:-|:-|:-|:-|:-|:-|:-|:-|
|√
`(3.4.10+)`
|√
`(3.5.1+)`
|√|√|√|√|√|√|√|x|x|
|√
`(3.4.10+)`
|√
`(见下)`
|√|√|√|√|√|√|√|x|x|
web平台不同Vue版本支持情况有差异:
-
`vue2`
项目:uni-app 3.5.1+ 支持
-
`vue3`
项目:uni-app 3.2.13+ 支持
**返回参数说明**
**返回参数说明**
...
...
docs/api/plugins/payment.md
浏览文件 @
fa96cfdc
...
@@ -207,7 +207,142 @@ uni.requestPayment({
...
@@ -207,7 +207,142 @@ uni.requestPayment({
})
})
```
```
苹果应用内支付
#### 苹果应用内支付@iap
支付流程
1.
获取支付通道 (uni.getProvider)
2.
通过支付通道获取产品列表 (iapChannel.requestProduct 可选)
3.
检查是否存在未关闭的订单 (iapChannel.restoreCompletedTransactions)
4.
请求支付,传递产品信息 (uni.requestPayment)
5.
客户端接收苹果返回的支付票据发送到服务器,在服务器请求苹果服务器验证支付是否有效
6.
服务器验证票据有效后在客户端关闭订单 (iapChannel.finishTransaction)
3.
5.1 之前因自动关闭订单导致某些情况下丢单的问题
3.
5.1 + 增加了手动关闭订单参数
`manualFinishTransaction`
, 在合适的时机调用
`iapChannel.finishTransaction`
关闭订单
3.
5.1+ 开始支持通过
`uni.getProvider`
获取IAP支付通道的方法
获取IAP支付通道
```
js
uni
.
getProvider
({
service
:
'
payment
'
,
success
:
(
res
)
=>
{
const
iapChannel
=
res
.
providers
.
find
((
channel
)
=>
{
return
(
channel
.
id
===
'
appleiap
'
)
})
// 如果 iapChannel 为 null,说明当前包没有包含iap支付模块。注意:HBuilder基座不包含 iap 通道
}
});
```
**IAP支付通道相关方法**
向苹果服务器获取产品列表
`iapChannel.requestProduct(<Function> success, <Function> fail)`
`success`
回调值类型
`Array<Product>`
获取苹果服务器已支付且未关闭的交易列表
`iapChannel.restoreCompletedTransactions(<Function> success, <Function> fail)`
`success`
回调值类型
`Array<Transaction>`
关闭苹果服务器订单
`iapChannel.finishTransaction(Transaction, <Function> success, <Function> fail)`
所有
`fail`
回调格式为
`{ errCode: xxx, errMsg: '' }`
`uni.requestPayment()`
说明
```
js
uni
.
requestPayment
({
provider
:
'
appleiap
'
,
orderInfo
:
{},
success
:
(
e
)
=>
{
// e 类型为 Transaction, 详见下面的描述
}
})
```
**orderInfo**
|属性|类型|默认值|说明|
|:-|:-|:-|:-|
|productid|String||产品id,在苹果开发者中心配置|
|username|String||透传参数,一般用于标记订单和用户的关系,向苹果服务器二次验证票据时返回此字段|
|quantity|Number|1|购买数量,至少大于等于
`1`
|
|manualFinishTransaction|Boolean|false|3.5.1+ 支持,手动关闭订单,值为
`false`
时支付完成后自动关闭订单,
`true`
时不关闭订单,需要在合适的时机调用
`finishTransaction`
关闭订单。建议设置为
`true`
, 默认值为
`false`
是为了向下兼容|
**Product**
|属性|类型|说明|
|:-|:-|:-|
|title|String|产品标题|
|description|String|产品描述|
|productid|String|产品id,在苹果开发者中心配置|
|price|Number|价格|
|pricelocal|String|币种,例如:
`zh_CN@currency=CNY`
|
**Transaction**
|属性|类型|说明|
|:-|:-|:-|
|payment|Object|支付信息,详见下面的说明|
|transactionDate|String|交易日期,示例
`2022-01-01 08:00:00`
|
|transactionIdentifier|String|交易唯一标识|
|transactionReceipt|String|支付票据,用于在开发者的服务器向苹果的服务器二次验证交易是否有效|
|transactionState|String|交易状态码|
**Payment**
|属性|类型|说明|
|:-|:-|:-|
|productid|String|产品id|
|quantity|String|购买数量|
|username|String|透传参数|
**transactionState**
值类型:String
|值|说明|
|:-|:-|
|1|交易成功|
注意事项
-
相同订单,重复调用
`restoreCompletedTransactions`
后
`transactionReceipt`
会发生变化,并非唯一值
#### 订单丢失场景
-
用户没有绑定
`AppStore`
支付方式,调用
`uni.requestPayment()`
准备支付,触发失败
`fail`
回调,errCode=2,用户未绑定支付方式,app内支付流程结束。
系统弹出框引导用户绑定支付方式,此过程将跳转到系统应用
`AppStore`
进行绑定支付方式,绑定成功同步支付成功,用户成功付款
下面为未处理丢单的示例代码,后续提供完整代码
```
html
```
html
<template>
<template>
...
@@ -228,7 +363,7 @@ uni.requestPayment({
...
@@ -228,7 +363,7 @@ uni.requestPayment({
</template>
</template>
```
```
```
j
avascript
```
j
s
<
script
>
<
script
>
let
iapChannel
=
null
,
let
iapChannel
=
null
,
productId
=
'
HelloUniappPayment1
'
,
productId
=
'
HelloUniappPayment1
'
,
...
...
docs/api/ui/locale.md
浏览文件 @
fa96cfdc
...
@@ -44,7 +44,7 @@
...
@@ -44,7 +44,7 @@
|:-|:-|:-|
|:-|:-|:-|
|locale|String|当前语言|
|locale|String|当前语言|
###
# 提示
###
注意事项
*
组件和接口显示会根据设置的语言环境自动切换,未支持的系统语言环境会显示为英文。
*
组件和接口显示会根据设置的语言环境自动切换,未支持的系统语言环境会显示为英文。
*
App-Android 平台设置新的语言后会自动重启应用。
*
App-Android 平台设置新的语言后会自动重启应用。
...
...
docs/tutorial/app-oauth-google.md
浏览文件 @
fa96cfdc
...
@@ -72,4 +72,3 @@ plus.oauth.getServices(function(services) {
...
@@ -72,4 +72,3 @@ plus.oauth.getServices(function(services) {
})
})
```
```
0-4c22-aa61-0d63120e1a4b.png)
docs/tutorial/app-payment-aip.md
浏览文件 @
fa96cfdc
...
@@ -102,8 +102,8 @@ var restoreFlag = true; // 调用支付接口时标记 restoreFlag = true , 实
...
@@ -102,8 +102,8 @@ var restoreFlag = true; // 调用支付接口时标记 restoreFlag = true , 实
plus
.
payment
.
request
(
iap
,
{
plus
.
payment
.
request
(
iap
,
{
productid
:
"
商品id
"
,
productid
:
"
商品id
"
,
username
:
"
appusername
"
,
// 用户标识
username
:
"
appusername
"
,
// 用户标识
optimize
:
true
,
// 设置 optimize: true 解决丢单问题
optimize
:
true
,
// 设置 optimize: true 解决丢单问题
,已废弃,推荐使用 manualFinishTransaction
iapVersion
:
2
// 3.5.0
+ 支持,设置此参数后需要开发者主动关闭订单,参见下面的关闭订单方法 finishTransaction()
manualFinishTransaction
:
true
// 3.5.1
+ 支持,设置此参数后需要开发者主动关闭订单,参见下面的关闭订单方法 finishTransaction()
},
function
(
result
){
},
function
(
result
){
restoreFlag
=
false
;
// 支付成功清除标记 restoreFlag = false
restoreFlag
=
false
;
// 支付成功清除标记 restoreFlag = false
// 支付成功,result 为 IAP商品交易信息对象 IAPTransaction 需将返回的支付凭证传给后端进行二次认证
// 支付成功,result 为 IAP商品交易信息对象 IAPTransaction 需将返回的支付凭证传给后端进行二次认证
...
@@ -167,24 +167,28 @@ document.addEventListener('resume',function(){
...
@@ -167,24 +167,28 @@ document.addEventListener('resume',function(){
```
```
#### 丢单问题说明
#### 丢单问题说明
通过和用户联调我们发现在调用支付接口后,如果用户未绑定支付方式此时会触发支付失败回调方法,实际上用户可以跳转 AppStrore 绑卡然后继续支付,之前的逻辑在回调失败方法中框架会关闭订单,用户付完钱在回到App中也不会触发成功回调,这样就造成了丢单,解决方法就是在调用支付接口时添加optimize: true参数,并标记 restoreFlag = true;,支付成功回调中清除标记 restoreFlag = false; 然后在支付失败回调中框架就不会关闭订单了,并在页面显示的时候通过标记判断是否需要调用 restoreComplateRequest 方法,如果用户跳转App Store绑定支付方式付款成功后回到 App 就可以通过 restoreComplateRequest 方法恢复之前支付的订单信息,解决丢单的问题;
通过和用户联调我们发现在调用支付接口后,如果用户未绑定支付方式此时会触发支付失败回调方法,实际上用户可以跳转 AppStrore 绑卡然后继续支付,之前的逻辑在回调失败方法中框架会关闭订单,用户付完钱在回到App中也不会触发成功回调,这样就造成了丢单,解决方法就是在调用支付接口时添加optimize: true参数,并标记 restoreFlag = true;,支付成功回调中清除标记 restoreFlag = false; 然后在支付失败回调中框架就不会关闭订单了,并在页面显示的时候通过标记判断是否需要调用 restoreComplateRequest 方法,如果用户跳转App Store绑定支付方式付款成功后回到 App 就可以通过 restoreComplateRequest 方法恢复之前支付的订单信息,解决丢单的问题;
3.
5.1 之前因自动关闭订单导致某些情况下丢单的问题
3.
5.1 +
#### 丢单解决方案
-
新增手动关闭订单参数
`manualFinishTransaction`
, 在合适的时机调用
`iapChannel.finishTransaction`
关闭订单
3.
5.0+ 支持
-
新增关闭订单方法
`iapChannel.finishTransaction(Transaction, <Function> success, <Function> fail)`
-
调用支付和恢复购买时传递参数
`iapVersion`
, 设置后订单不会关闭,需要开发者在合适的时机调用
`finishTransaction`
关闭订单
-
新增 iapChannel 方法
`requestProduct`
`restoreCompletedTransactions`
替代
`requestOrder`
`restoreComplateRequest`
```
js
```
js
// 支付
// 支付
plus
.
payment
.
request
(
iapChannel
,
{
plus
.
payment
.
request
(
iapChannel
,
{
iapVersion
:
2
manualFinishTransaction
:
true
})
})
// 恢复
// 恢复
iapChannel
.
restoreCompl
ateRequest
({
iapChannel
.
restoreCompl
etedTransactions
({
iapVersion
:
2
manualFinishTransaction
:
true
})
})
```
```
...
@@ -193,7 +197,7 @@ iapChannel.restoreComplateRequest({
...
@@ -193,7 +197,7 @@ iapChannel.restoreComplateRequest({
1.
网络原因
1.
网络原因
2.
用户首次绑卡
2.
用户首次绑卡
过段时间调用恢复购买
`restoreCompl
ateRequest
`
可以获取到上次异常或未完成的订单
过段时间调用恢复购买
`restoreCompl
etedTransactions
`
可以获取到上次异常或未完成的订单
-
正确关闭订单的方法
-
正确关闭订单的方法
...
@@ -202,8 +206,8 @@ iapChannel.restoreComplateRequest({
...
@@ -202,8 +206,8 @@ iapChannel.restoreComplateRequest({
3.
二次确认后可安全调用
`finishTransaction`
关闭订单
3.
二次确认后可安全调用
`finishTransaction`
关闭订单
注意:
注意:
-
在订单未关闭时,即使卸载应用调用恢复购买
`restoreCompl
ateRequest
`
仍然可以获取到
-
在订单未关闭时,即使卸载应用调用恢复购买
`restoreCompl
etedTransactions
`
仍然可以获取到
-
A账号下载的应用,切换B账号, 调用
`restoreCompl
ateRequest
`
系统弹窗提示恢复购买失败
-
A账号下载的应用,切换B账号, 调用
`restoreCompl
etedTransactions
`
系统弹窗提示恢复购买失败
### 常见问题
### 常见问题
...
...
docs/uniCloud/cf-functions.md
浏览文件 @
fa96cfdc
...
@@ -845,11 +845,11 @@ exports.main = async function(event, context) {
...
@@ -845,11 +845,11 @@ exports.main = async function(event, context) {
如果此云函数运行在腾讯云nodejs12,setTimeout里面的console.log会在本次云函数调用内,同样的本次云函数计费时间也会按照最终执行完成的时间计算(5000ms+return耗时)。但是前端无需等待5秒即可收到响应。
**注意:如果有未断开的长连接(例如:redis连接)会导致云函数一直运行到配置的超时时间**
如果此云函数运行在腾讯云nodejs12,setTimeout里面的console.log会在本次云函数调用内,同样的本次云函数计费时间也会按照最终执行完成的时间计算(5000ms+return耗时)。但是前端无需等待5秒即可收到响应。
**注意:如果有未断开的长连接(例如:redis连接)会导致云函数一直运行到配置的超时时间**
当在云函数package.json内的cloudfunction-config内配置了
`keepRunningAfterReturn: false`
时,可以改变腾讯云nodejs12的表现,云函数return之后将不再继续执行,未断开的长连接也不会增加云函数实际运行时间,简单来说其表现和腾讯云nodejs8一致。
当在云函数package.json内的cloudfunction-config内配置了
`keepRunningAfterReturn: false`
时,可以改变腾讯云nodejs12的表现,云函数return之后将不再继续执行,未断开的长连接也不会增加云函数实际运行时间,
云函数return后长连接也不会被中断,
简单来说其表现和腾讯云nodejs8一致。
**腾讯云nodejs12使用redis**
**腾讯云nodejs12使用redis**
由于redis需要和服务器建立连接,此连接会阻止云函数结束执行。如果没有云函数return之后还需要继续执行的需求,可以简单的在
`cloudfunction-config`
内配置
`keepRunningAfterReturn: false`
。
由于redis需要和服务器建立连接,此连接会阻止云函数结束执行。如果没有云函数return之后还需要继续执行的需求,可以简单的在
`cloudfunction-config`
内配置
`keepRunningAfterReturn: false`
。
这样redis的连接并不会中断,下次请求来时依然可以使用之前建立的连接。
如果需要return之后继续执行,那么需要在使用完毕后断开redis连接,调用
`redis.quit()`
方法即可断开连接。需要注意的是断开连接后之前建立的连接将不再可用,下个请求到来时需要使用
`uniCloud.redis()`
方法重新建立连接。
如果需要return之后继续执行,那么需要在使用完毕后断开redis连接,调用
`redis.quit()`
方法即可断开连接。需要注意的是断开连接后之前建立的连接将不再可用,下个请求到来时需要使用
`uniCloud.redis()`
方法重新建立连接。
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录