Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
21e60318
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
21e60318
编写于
9月 27, 2022
作者:
O
openharmony_ci
提交者:
Gitee
9月 27, 2022
浏览文件
操作
浏览文件
下载
差异文件
!9990 hiappevent-guidelines.md补充代码注释
Merge pull request !9990 from lyj/master
上级
1c860d94
0e3b35a1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
20 addition
and
13 deletion
+20
-13
zh-cn/application-dev/dfx/hiappevent-guidelines.md
zh-cn/application-dev/dfx/hiappevent-guidelines.md
+20
-13
未找到文件。
zh-cn/application-dev/dfx/hiappevent-guidelines.md
浏览文件 @
21e60318
...
...
@@ -12,12 +12,10 @@
**打点接口功能介绍:**
| 接口名 | 描述 |
| ------------------------------------------------------------ | ------------------------------------------------------------ |
| write(string eventName, EventType type, object keyValues, AsyncCallback
\<
void> callback): void | 应用事件异步打点方法,使用callback方式作为异步回调。 |
| write(string eventName, EventType type, object keyValues): Promise
\<
void> | 应用事件异步打点方法,使用Promise方式作为异步回调。 |
| write(AppEventInfo info, AsyncCallback
\<
void> callback): void | 支持domain参数的应用事件异步打点方法,使用callback方式作为异步回调。 |
| write(AppEventInfo info): Promise
\<
void> | 支持domain参数的应用事件异步打点方法,使用Promise方式作为异步回调。 |
| 接口名 | 描述 |
| ------------------------------------------------------------ | ---------------------------------------------------- |
| write(AppEventInfo info, AsyncCallback
\<
void> callback): void | 应用事件异步打点方法,使用callback方式作为异步回调。 |
| write(AppEventInfo info): Promise
\<
void> | 应用事件异步打点方法,使用Promise方式作为异步回调。 |
当采用callback作为异步回调时,可以在callback中进行下一步处理。
...
...
@@ -35,7 +33,7 @@
| 接口名 | 描述 |
| -------------------------------------------------- | -------------------- |
| addWatcher(Watcher watcher): AppEventPackageHolder |
新增
应用事件订阅者。 |
| addWatcher(Watcher watcher): AppEventPackageHolder |
添加
应用事件订阅者。 |
| removeWatcher(Watcher watcher): void | 移除应用事件订阅者。 |
**清理接口功能介绍:**
...
...
@@ -66,7 +64,7 @@
以一次应用事件打点订阅流程为例,说明开发步骤。
1.
新建一个ets应用工程,编辑工程中的“entry > src > main > ets > pages > index.ets” 文件,依次添加三个按钮,以对应用事件打点订阅流程进行模拟。其中,按钮1模拟了应用事件打点的调用,按钮2模拟了
新增
自动触发回调的事件订阅者的调用,按钮3模拟了移除事件订阅者的调用,完整示例代码如下:
1.
新建一个ets应用工程,编辑工程中的“entry > src > main > ets > pages > index.ets” 文件,依次添加三个按钮,以对应用事件打点订阅流程进行模拟。其中,按钮1模拟了应用事件打点的调用,按钮2模拟了
添加
自动触发回调的事件订阅者的调用,按钮3模拟了移除事件订阅者的调用,完整示例代码如下:
```
ts
import
hiAppEvent
from
'
@ohos.hiAppEvent
'
;
...
...
@@ -84,6 +82,7 @@
.
fontWeight
(
FontWeight
.
Bold
)
Button
(
"
1 writeTest
"
).
onClick
(()
=>
{
// 根据传入的事件参数执行一次应用事件打点
hiAppEvent
.
write
({
domain
:
"
test_domain
"
,
name
:
"
test_event
"
,
...
...
@@ -100,6 +99,7 @@
})
Button
(
"
2 addWatcherTest
"
).
onClick
(()
=>
{
// 根据传入的订阅参数添加一个应用事件订阅者
hiAppEvent
.
addWatcher
({
name
:
"
watcher1
"
,
appEventFilters
:
[{
domain
:
"
test_domain
"
}],
...
...
@@ -109,17 +109,23 @@
timeOut
:
2
},
onTrigger
:
function
(
curRow
,
curSize
,
holder
)
{
// 返回的holder对象为null表示订阅过程发生异常,因此在记录错误日志后直接返回
if
(
holder
==
null
)
{
console
.
error
(
"
HiAppEvent holder is null
"
);
return
;
}
// 设置每次获取的订阅事件包大小阈值为1000字节
holder
.
setSize
(
1000
);
let
eventPkg
=
null
;
// 根据设置阈值大小去获取订阅事件包(返回的事件包对象为null,表示当前订阅数据被全部取出)
while
((
eventPkg
=
holder
.
takeNext
())
!=
null
)
{
console
.
info
(
"
HiAppEvent eventPkg.packageId=
"
+
eventPkg
.
packageId
);
console
.
info
(
"
HiAppEvent eventPkg.row=
"
+
eventPkg
.
row
);
console
.
info
(
"
HiAppEvent eventPkg.size=
"
+
eventPkg
.
size
);
// 对获取的订阅事件包进行解析,并将解析结果打印在Log界面
console
.
info
(
'
HiAppEvent eventPkg.packageId=
'
+
eventPkg
.
packageId
);
console
.
info
(
'
HiAppEvent eventPkg.row=
'
+
eventPkg
.
row
);
console
.
info
(
'
HiAppEvent eventPkg.size=
'
+
eventPkg
.
size
);
// 对订阅事件包中的事件字符串数组进行遍历解析
for
(
const
eventInfo
of
eventPkg
.
data
)
{
console
.
info
(
"
HiAppEvent eventPkg.data=
"
+
eventInfo
);
console
.
info
(
'
HiAppEvent eventPkg.data=
'
+
eventInfo
);
}
}
}
...
...
@@ -127,6 +133,7 @@
})
Button
(
"
3 removeWatcherTest
"
).
onClick
(()
=>
{
// 移除指定名称的应用事件订阅者
hiAppEvent
.
removeWatcher
({
name
:
"
watcher1
"
})
...
...
@@ -147,7 +154,7 @@
success to write event: 0
```
4.
在应用界面点击按钮2进行
新增
事件订阅者,再多次点击按钮1进行多次打点。在满足回调任一触发条件(事件数量、事件数据大小、定时时长)后,可以在Log窗口看到回调函数触发后获取到的订阅事件包的日志:
4.
在应用界面点击按钮2进行
添加
事件订阅者,再多次点击按钮1进行多次打点。在满足回调任一触发条件(事件数量、事件数据大小、定时时长)后,可以在Log窗口看到回调函数触发后获取到的订阅事件包的日志:
```
HiAppEvent eventPkg.packageId=0
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录