W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
本模塊提供了應(yīng)用事件打點能力,包括應(yīng)用事件落盤、應(yīng)用事件訂閱、應(yīng)用事件清理、打點功能配置等功能。
本模塊首批接口從API version 9開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨標(biāo)記接口的起始版本。
write(info: AppEventInfo, callback: AsyncCallback<void>): void
應(yīng)用事件打點方法,將事件寫入到當(dāng)天的事件文件中,可接收AppEventInfo類型的事件對象,使用callback方式作為異步回調(diào)。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
info | 是 | 應(yīng)用事件對象。 | |
callback | AsyncCallback<void> | 是 | 打點回調(diào)函數(shù)。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見應(yīng)用事件打點錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
11100001 | Function is disabled. |
11101001 | Invalid event domain. |
11101002 | Invalid event name. |
11101003 | Invalid number of event parameters. |
11101004 | Invalid string length of the event parameter. |
11101005 | Invalid event parameter name. |
11101006 | Invalid array length of the event parameter. |
示例:
- hiAppEvent.write({
- domain: "test_domain",
- name: "test_event",
- eventType: hiAppEvent.EventType.FAULT,
- params: {
- int_data: 100,
- str_data: "strValue"
- }
- }, (err) => {
- if (err) {
- console.error(`code: ${err.code}, message: ${err.message}`);
- return;
- }
- console.log(`success to write event`);
- });
write(info: AppEventInfo): Promise<void>
應(yīng)用事件打點方法,將事件寫入到當(dāng)天的事件文件中,可接收AppEventInfo類型的事件對象,使用Promise方式作為異步回調(diào)。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
info | 是 | 應(yīng)用事件對象。 |
返回值:
類型 | 說明 |
---|---|
Promise<void> | Promise對象。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見應(yīng)用事件打點錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
11100001 | Function is disabled. |
11101001 | Invalid event domain. |
11101002 | Invalid event name. |
11101003 | Invalid number of event parameters. |
11101004 | Invalid string length of the event parameter. |
11101005 | Invalid event parameter name. |
11101006 | Invalid array length of the event parameter. |
示例:
- hiAppEvent.write({
- domain: "test_domain",
- name: "test_event",
- eventType: hiAppEvent.EventType.FAULT,
- params: {
- int_data: 100,
- str_data: "strValue"
- }
- }).then(() => {
- console.log(`success to write event`);
- }).catch((err) => {
- console.error(`code: ${err.code}, message: ${err.message}`);
- });
此接口提供了應(yīng)用事件信息的參數(shù)選項。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
domain | string | 是 | 事件領(lǐng)域。事件領(lǐng)域名稱支持?jǐn)?shù)字、小寫字母、下劃線字符,需要以小寫字母開頭且不能以下劃線結(jié)尾,長度非空且不超過16個字符。 |
name | string | 是 | 事件名稱。事件名稱支持?jǐn)?shù)字、小寫字母、下劃線字符,需要以小寫字母開頭且不能以下劃線結(jié)尾,長度非空且不超過48個字符。 |
eventType | 是 | 事件類型。 | |
params | object | 是 | 事件參數(shù)對象,每個事件參數(shù)包括參數(shù)名和參數(shù)值,其規(guī)格定義如下: - 參數(shù)名為string類型,只支持?jǐn)?shù)字、小寫字母、下劃線字符,需要以小寫字母開頭且不能以下劃線結(jié)尾,長度非空且不超過16個字符。 - 參數(shù)值支持string、number、boolean、數(shù)組類型,string類型參數(shù)長度需在8*1024個字符以內(nèi),超出會做丟棄處理;number類型參數(shù)取值需在Number.MIN_SAFE_INTEGER~Number.MAX_SAFE_INTEGER范圍內(nèi),超出可能會產(chǎn)生不確定值;數(shù)組類型參數(shù)中的元素類型只能全為string、number、boolean中的一種,且元素個數(shù)需在100以內(nèi),超出會做丟棄處理。 - 參數(shù)個數(shù)需在32個以內(nèi),超出的參數(shù)會做丟棄處理。 |
configure(config: ConfigOption): void
應(yīng)用事件打點配置方法,可用于配置打點開關(guān)、目錄存儲配額大小等功能。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
config | 是 | 應(yīng)用事件打點配置項對象。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見應(yīng)用事件打點錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
11103001 | Invalid max storage quota value. |
示例:
- // 配置打點開關(guān)為關(guān)閉狀態(tài)
- hiAppEvent.configure({
- disable: true
- });
- // 配置文件目錄存儲配額為100M
- hiAppEvent.configure({
- maxStorage: '100M'
- });
此接口提供了對應(yīng)用事件打點功能的配置選項。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
disable | boolean | 否 | 打點功能開關(guān),默認(rèn)值為false。true:關(guān)閉打點功能,false:不關(guān)閉打點功能。 |
maxStorage | string | 否 | 打點數(shù)據(jù)存放目錄的配額大小,默認(rèn)值為“10M”。 在目錄大小超出配額后,下次打點會觸發(fā)對目錄的清理操作:按從舊到新的順序逐個刪除打點數(shù)據(jù)文件,直到目錄大小不超出配額時結(jié)束。 |
addWatcher(watcher: Watcher): AppEventPackageHolder
添加應(yīng)用事件觀察者方法,可用于訂閱應(yīng)用事件。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
watcher | 是 | 應(yīng)用事件觀察者。 |
返回值:
類型 | 說明 |
---|---|
訂閱數(shù)據(jù)持有者,訂閱失敗時返回null。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見應(yīng)用事件打點錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
11102001 | Invalid watcher name. |
11102002 | Invalid filtering event domain. |
11102003 | Invalid row value. |
11102004 | Invalid size value. |
11102005 | Invalid timeout value. |
示例:
- // 1. 如果觀察者傳入了回調(diào)的相關(guān)參數(shù),則可以選擇在自動觸發(fā)的回調(diào)函數(shù)中對訂閱事件進(jìn)行處理
- hiAppEvent.addWatcher({
- name: "watcher1",
- appEventFilters: [
- {
- domain: "test_domain",
- eventTypes: [hiAppEvent.EventType.FAULT, hiAppEvent.EventType.BEHAVIOR]
- }
- ],
- triggerCondition: {
- row: 10,
- size: 1000,
- timeOut: 1
- },
- onTrigger: function (curRow, curSize, holder) {
- if (holder == null) {
- console.error("holder is null");
- return;
- }
- let eventPkg = null;
- while ((eventPkg = holder.takeNext()) != null) {
- console.info(`eventPkg.packageId=${eventPkg.packageId}`);
- console.info(`eventPkg.row=${eventPkg.row}`);
- console.info(`eventPkg.size=${eventPkg.size}`);
- for (const eventInfo of eventPkg.data) {
- console.info(`eventPkg.data=${eventInfo}`);
- }
- }
- }
- });
- // 2. 如果觀察者未傳入回調(diào)的相關(guān)參數(shù),則可以選擇使用返回的holder對象手動去處理訂閱事件
- let holder = hiAppEvent.addWatcher({
- name: "watcher2",
- });
- if (holder != null) {
- let eventPkg = null;
- while ((eventPkg = holder.takeNext()) != null) {
- console.info(`eventPkg.packageId=${eventPkg.packageId}`);
- console.info(`eventPkg.row=${eventPkg.row}`);
- console.info(`eventPkg.size=${eventPkg.size}`);
- for (const eventInfo of eventPkg.data) {
- console.info(`eventPkg.data=${eventInfo}`);
- }
- }
- }
removeWatcher(watcher: Watcher): void
移除應(yīng)用事件觀察者方法,可用于取消訂閱應(yīng)用事件。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
watcher | 是 | 應(yīng)用事件觀察者。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見應(yīng)用事件打點錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
11102001 | Invalid watcher name. |
示例:
- // 1. 定義一個應(yīng)用事件觀察者
- let watcher = {
- name: "watcher1",
- }
- // 2. 添加一個應(yīng)用事件觀察者來訂閱事件
- hiAppEvent.addWatcher(watcher);
- // 3. 移除該應(yīng)用事件觀察者以取消訂閱事件
- hiAppEvent.removeWatcher(watcher);
此接口提供了應(yīng)用事件觀察者的參數(shù)選項。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
name | string | 是 | 觀察者名稱,用于唯一標(biāo)識觀察者。 |
triggerCondition | 否 | 訂閱回調(diào)觸發(fā)條件,需要與回調(diào)函數(shù)一同傳入才會生效。 | |
appEventFilters | 否 | 訂閱過濾條件,在需要對訂閱事件進(jìn)行過濾時傳入。 | |
onTrigger | (curRow: number, curSize: number, holder: AppEventPackageHolder) => void | 否 | 訂閱回調(diào)函數(shù),需要與回調(diào)觸發(fā)條件一同傳入才會生效,函數(shù)入?yún)⒄f明如下: curRow:在本次回調(diào)觸發(fā)時的訂閱事件總數(shù)量; curSize:在本次回調(diào)觸發(fā)時的訂閱事件總大小,單位為byte; holder:訂閱數(shù)據(jù)持有者對象,可以通過其對訂閱事件進(jìn)行處理。 |
此接口提供了回調(diào)觸發(fā)條件的參數(shù)選項,只要滿足任一條件就會觸發(fā)訂閱回調(diào)。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
row | number | 否 | 滿足觸發(fā)回調(diào)的事件總數(shù)量。 |
size | number | 否 | 滿足觸發(fā)回調(diào)的事件總大小,單位為byte。 |
timeOut | number | 否 | 滿足觸發(fā)回調(diào)的超時時長,單位為30s。 |
此接口提供了過濾應(yīng)用事件的參數(shù)選項。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
domain | string | 是 | 需要訂閱的事件領(lǐng)域。 |
eventTypes | 否 | 需要訂閱的事件類型集合。 |
訂閱數(shù)據(jù)持有者類,用于對訂閱事件進(jìn)行處理。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
constructor(watcherName: string)
類構(gòu)造函數(shù),在添加應(yīng)用事件觀察者時,會由系統(tǒng)自動調(diào)用來創(chuàng)建一個該觀察者對應(yīng)的訂閱數(shù)據(jù)持有者對象,并返回給開發(fā)者。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
watcherName | string | 是 | 觀察者名稱。 |
示例:
- let holder = hiAppEvent.addWatcher({
- name: "watcher",
- });
setSize(size: number): void
設(shè)置每次取出的應(yīng)用事件包的數(shù)據(jù)大小閾值。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
參數(shù):
參數(shù)名 | 類型 | 必填 | 說明 |
---|---|---|---|
size | number | 是 | 數(shù)據(jù)大小閾值,單位為byte,默認(rèn)值為512*1024。 |
錯誤碼:
以下錯誤碼的詳細(xì)介紹請參見應(yīng)用事件打點錯誤碼。
錯誤碼ID | 錯誤信息 |
---|---|
11104001 | Invalid size value. |
示例:
- let holder = hiAppEvent.addWatcher({
- name: "watcher",
- });
- holder.setSize(1000);
takeNext(): AppEventPackage
根據(jù)設(shè)置的數(shù)據(jù)大小閾值來取出訂閱事件數(shù)據(jù),當(dāng)訂閱事件數(shù)據(jù)全部被取出時返回null作為標(biāo)識。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
示例:
- let holder = hiAppEvent.addWatcher({
- name: "watcher",
- });
- let eventPkg = holder.takeNext();
此接口提供了訂閱返回的應(yīng)用事件包的參數(shù)定義。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
名稱 | 類型 | 必填 | 說明 |
---|---|---|---|
packageId | number | 是 | 事件包ID,從0開始自動遞增。 |
row | number | 是 | 事件包的事件數(shù)量。 |
size | number | 是 | 事件包的事件大小,單位為byte。 |
data | string[] | 是 | 事件包的事件信息。 |
clearData(): void
應(yīng)用事件打點數(shù)據(jù)清理方法,將應(yīng)用存儲在本地的打點數(shù)據(jù)進(jìn)行清除。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
示例:
- hiAppEvent.clearData();
事件類型枚舉。
系統(tǒng)能力: SystemCapability.HiviewDFX.HiAppEvent
名稱 | 值 | 說明 |
---|---|---|
FAULT | 1 | 故障類型事件。 |
STATISTIC | 2 | 統(tǒng)計類型事件。 |
SECURITY | 3 | 安全類型事件。 |
BEHAVIOR | 4 | 行為類型事件。 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: