Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
unidocs-uni-app-x-zh
提交
35bd4cc6
U
unidocs-uni-app-x-zh
项目概览
DCloud
/
unidocs-uni-app-x-zh
通知
144
Star
2
Fork
33
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
9
列表
看板
标记
里程碑
合并请求
11
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
unidocs-uni-app-x-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
9
Issue
9
列表
看板
标记
里程碑
合并请求
11
合并请求
11
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
35bd4cc6
编写于
9月 10, 2024
作者:
lizhongyi_
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
docs update uts-plugin.md
上级
903c4491
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
65 addition
and
5 deletion
+65
-5
docs/plugin/uts-plugin.md
docs/plugin/uts-plugin.md
+65
-5
未找到文件。
docs/plugin/uts-plugin.md
浏览文件 @
35bd4cc6
...
...
@@ -351,11 +351,6 @@ dependencies {
2 请勿通过 手动添加jar/aar 等方式引入相同的依赖,否则会因依赖冲突导致云打包失败。
-
project 节点下的 Gradle 插件仅支持以下列表(如需添加新的插件,需联系DCloud技术支持申请):
+
com.google.gms.google-services
+
com.huawei.agconnect
+
com.hihonor.mcs.asplugin
#### iOS 平台原生配置
app-ios 文件夹下存在iOS平台原生配置,包括以下目录或文件
...
...
@@ -1847,6 +1842,71 @@ utsJsonObj.forEach(function(perField:any){
```
### HX 4.25 版本及以后 UTS 插件如何定义一个可以持续回调的函数@keepalive
HX 4.25版本以前向 js 暴露的 callback 是一直保存在内存中的,所有带 callback 回调的函数 都可以持续回调,但这也带来了一个致命的问题, 当频繁长时间调用带 callback 回调的函数时,由于 callback 一直保存在内存中,会创建大量 callback 对象,造成内存暴增甚至闪退。
为了处理这个问题,从 HX 4.25 版本我们做了调整,只有以 on 开头,且仅有一个 callback 类型的参数的函数 才能持续回调,其他函数一律只能回调一次。这种做法处理了内存问题,但带来了向下兼容的问题。
为了更彻底的解决这个问题,从 HX 4.27 版本开始,我们新增了通过装饰器(注解)的方式定义回调函数是否一直存活。
下面的方式均可以使回调函数一直存活。
```
ts
export
type
Options
=
{
a
:
string
success
:
(
res
:
string
)
=>
void
}
export
function
onTest
(
callback
:
(
msg
:
string
)
=>
void
)
{
callback
(
"
a
"
)
callback
(
"
b
"
)
}
@
UTSJS
.
keepAlive
export
function
test
(
callback
:
(
msg
:
string
)
=>
void
)
{
callback
(
"
a
"
)
callback
(
"
b
"
)
}
@
UTSJS
.
keepAlive
export
function
testOption
(
option
:
Options
)
{
option
.
success
(
"
a
"
)
option
.
success
(
"
b
"
)
}
export
class
Test
{
onTest
(
callback
:
(
msg
:
string
)
=>
void
)
{
callback
(
"
a
"
)
callback
(
"
b
"
)
}
@
UTSJS
.
keepAlive
testOption
(
option
:
Options
)
{
option
.
success
(
"
a
"
)
option
.
success
(
"
b
"
)
}
@
UTSJS
.
keepAlive
test
(
callback
:
(
msg
:
string
)
=>
void
)
{
callback
(
"
a
"
)
callback
(
"
b
"
)
}
@
UTSJS
.
keepAlive
static
testStatic
(
callback
:
(
msg
:
string
)
=>
void
)
{
callback
(
"
a
"
)
callback
(
"
b
"
)
}
@
UTSJS
.
keepAlive
static
testOptionStatic
(
option
:
Options
)
{
option
.
success
(
"
a
"
)
option
.
success
(
"
b
"
)
}
}
```
## Bug & Tips@tips
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录