Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
c605d544
D
Docs
项目概览
OpenHarmony
/
Docs
12 个月 前同步成功
通知
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看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
c605d544
编写于
12月 28, 2022
作者:
O
openharmony_ci
提交者:
Gitee
12月 28, 2022
浏览文件
操作
浏览文件
下载
差异文件
!12996 HiAppEvent开发指南更新
Merge pull request !12996 from lyj/master
上级
9d8b42f3
ad4f637e
变更
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
浏览文件 @
c605d544
...
...
@@ -45,15 +45,21 @@ HiAppEvent是在系统层面为应用开发者提供的一种事件打点机制
以实现对用户点击按钮行为的事件打点及订阅为例,说明开发步骤。
1.
新建一个ets应用工程,编辑工程中的“entry > src > main > ets >
Application> MyAbilityStage.ts” 文件,在应用启动时
添加对用户点击按钮事件的订阅,完整示例代码如下:
1.
新建一个ets应用工程,编辑工程中的“entry > src > main > ets >
entryability > EntryAbility.ts” 文件,在onCreate函数中
添加对用户点击按钮事件的订阅,完整示例代码如下:
```
js
import
AbilityStage
from
"
@ohos.application.AbilityStage
"
import
hilog
from
'
@ohos.hilog
'
;
import
Ability
from
'
@ohos.application.Ability
'
import
Window
from
'
@ohos.window
'
import
hiAppEvent
from
'
@ohos.hiviewdfx.hiAppEvent
'
export
default
class
MyAbilityStage
extends
AbilityStage
{
onCreate
()
{
console
.
log
(
"
[Demo] MyAbilityStage onCreate
"
)
export
default
class
EntryAbility
extends
Ability
{
onCreate
(
want
,
launchParam
)
{
hilog
.
isLoggable
(
0x0000
,
'
testTag
'
,
hilog
.
LogLevel
.
INFO
);
hilog
.
info
(
0x0000
,
'
testTag
'
,
'
%{public}s
'
,
'
Ability onCreate
'
);
hilog
.
info
(
0x0000
,
'
testTag
'
,
'
%{public}s
'
,
'
want param:
'
+
JSON
.
stringify
(
want
)
??
''
);
hilog
.
info
(
0x0000
,
'
testTag
'
,
'
%{public}s
'
,
'
launchParam:
'
+
JSON
.
stringify
(
launchParam
)
??
''
);
hiAppEvent
.
addWatcher
({
// 开发者可以自定义观察者名称,系统会使用名称来标识不同的观察者
name
:
"
watcher1
"
,
...
...
@@ -65,7 +71,7 @@ HiAppEvent是在系统层面为应用开发者提供的一种事件打点机制
onTrigger
:
function
(
curRow
,
curSize
,
holder
)
{
// 返回的holder对象为null,表示订阅过程发生异常,因此在记录错误日志后直接返回
if
(
holder
==
null
)
{
console
.
error
(
"
HiAppEvent holder is null
"
)
hilog
.
error
(
0x0000
,
'
testTag
'
,
"
HiAppEvent holder is null
"
)
return
}
let
eventPkg
=
null
...
...
@@ -73,11 +79,11 @@ HiAppEvent是在系统层面为应用开发者提供的一种事件打点机制
// 返回的事件包对象为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
}
`
)
hilog
.
info
(
0x0000
,
'
testTag
'
,
`HiAppEvent eventPkg.packageId=%{public}d`
,
eventPkg
.
packageId
)
hilog
.
info
(
0x0000
,
'
testTag
'
,
`HiAppEvent eventPkg.row=%{public}d`
,
eventPkg
.
row
)
hilog
.
info
(
0x0000
,
'
testTag
'
,
`HiAppEvent eventPkg.size=%{public}d`
,
eventPkg
.
size
)
for
(
const
eventInfo
of
eventPkg
.
data
)
{
console
.
info
(
`HiAppEvent eventPkg.info=
${
eventInfo
}
`
)
hilog
.
info
(
0x0000
,
'
testTag
'
,
`HiAppEvent eventPkg.info=%{public}s`
,
eventInfo
)
}
}
}
...
...
@@ -85,10 +91,11 @@ HiAppEvent是在系统层面为应用开发者提供的一种事件打点机制
}
}
2
.
编辑工程中的
“
entry
>
src
>
main
>
ets
>
Application
>
MyAbilityStage
.
ts
”
文件
,
添加一个按钮并在其onClick函数中进行事件打点
,
以记录按钮点击事件
,
完整示例代码如下
:
2
.
编辑工程中的
“
entry
>
src
>
main
>
ets
>
pages
>
Index
.
e
ts
”
文件
,
添加一个按钮并在其onClick函数中进行事件打点
,
以记录按钮点击事件
,
完整示例代码如下
:
```
js
import hiAppEvent from '@ohos.hiviewdfx.hiAppEvent'
import hilog from '@ohos.hilog'
@Entry
@Component
...
...
@@ -114,9 +121,9 @@ HiAppEvent是在系统层面为应用开发者提供的一种事件打点机制
// 事件参数定义
params: { click_time: 100 }
}).then(() => {
console.log(
`HiAppEvent success to write event`
)
hilog.info(0x0000, 'testTag',
`HiAppEvent success to write event`
)
}).catch((err) => {
console.error(
`HiAppEvent err.code: ${err.code}, err.message: ${err.message}`
)
hilog.error(0x0000, 'testTag',
`HiAppEvent err.code: ${err.code}, err.message: ${err.message}`
)
})
})
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录