91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于ArkTS語(yǔ)言的OpenHarmony APP應(yīng)用開(kāi)發(fā):公共事件的訂閱和發(fā)布

福州市凌睿智捷電子有限公司 ? 2024-09-19 08:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、程序介紹

本示例主要展示了公共事件相關(guān)的功能,實(shí)現(xiàn)了一個(gè)檢測(cè)用戶部分行為的應(yīng)用。

具體而言,本案例實(shí)現(xiàn)了如下幾個(gè)公共事件功能:

通過(guò)訂閱系統(tǒng)公共事件,實(shí)現(xiàn)對(duì)用戶操作行為(亮滅屏、斷聯(lián)網(wǎng))的監(jiān)測(cè);

通過(guò)在用戶主動(dòng)停止監(jiān)測(cè)行為時(shí)發(fā)布自定義有序公共事件,實(shí)現(xiàn)對(duì)用戶主動(dòng)觸發(fā)監(jiān)聽(tīng)行為的持久化記錄;

通過(guò)在用戶設(shè)置對(duì)某一事件的監(jiān)聽(tīng)狀態(tài)時(shí)發(fā)布粘性事件,記錄下本次應(yīng)用運(yùn)行期間允許監(jiān)聽(tīng)的事件列表,同時(shí)在應(yīng)用退出時(shí)將臨時(shí)允許的修改為不允許。

具體而言,本案例實(shí)現(xiàn)如下幾個(gè)界面:

進(jìn)入應(yīng)用顯示菜單頁(yè),可選擇“進(jìn)入”,“歷史”,“設(shè)置”及“關(guān)于”幾個(gè)選項(xiàng)。

點(diǎn)擊“進(jìn)入”后跳轉(zhuǎn)至主頁(yè)面,點(diǎn)擊主頁(yè)面“開(kāi)始監(jiān)控”按鈕,將開(kāi)始監(jiān)聽(tīng)系統(tǒng)公共事件,并進(jìn)行計(jì)時(shí),此時(shí)按鈕內(nèi)容變更為“停止監(jiān)聽(tīng)”;點(diǎn)擊停止監(jiān)聽(tīng)按鈕,頁(yè)面上將顯示本次監(jiān)聽(tīng)時(shí)長(zhǎng)及監(jiān)聽(tīng)期間收到的干擾信息匯總,并在頁(yè)面右下角顯示“查看詳情”按鈕,點(diǎn)擊按鈕將跳轉(zhuǎn)至詳情頁(yè),顯示監(jiān)聽(tīng)期間收到的干擾信息,應(yīng)用當(dāng)前僅監(jiān)聽(tīng)了亮滅屏、斷聯(lián)網(wǎng)等用戶可操作的系統(tǒng)公共事件,后續(xù)可根據(jù)需求快速擴(kuò)展。

返回至應(yīng)用菜單頁(yè)面,點(diǎn)擊“歷史”可查看用戶操作監(jiān)聽(tīng)的歷史記錄,當(dāng)前支持每次運(yùn)行期間最多存儲(chǔ)20條歷史記錄,超過(guò)20條后將刪除歷史數(shù)據(jù)。

返回至應(yīng)用菜單頁(yè)面,點(diǎn)擊“設(shè)置”可進(jìn)行具體系統(tǒng)事件的監(jiān)聽(tīng)配置,應(yīng)用提供了“一直”、“僅本次”及“從不”三個(gè)選項(xiàng),其中“僅本次”選項(xiàng)是指本次應(yīng)用運(yùn)行期間將監(jiān)聽(tīng)特定系統(tǒng)公共事件,應(yīng)用退出后該選項(xiàng)將自動(dòng)調(diào)整為“從不”。

返回值應(yīng)用菜單頁(yè)面,點(diǎn)擊“關(guān)于”可查看應(yīng)用版本信息及本示例的說(shuō)明。

本案例已在OpenHarmony凌蒙派-RK3568開(kāi)發(fā)板驗(yàn)證通過(guò)

API接口:9

2、知識(shí)準(zhǔn)備

2.1、commonEvent模塊

OpenHarmony通過(guò)CES(Common Event Service,公共事件服務(wù))為應(yīng)用程序提供訂閱、發(fā)布、退訂公共事件的能力。

公共事件從系統(tǒng)角度可分為:系統(tǒng)公共事件和自定義公共事件。

系統(tǒng)公共事件:CES內(nèi)部定義的公共事件,只有系統(tǒng)應(yīng)用和系統(tǒng)服務(wù)才能發(fā)布,例如HAP安裝,更新,卸載等公共事件。目前支持的系統(tǒng)公共事件詳見(jiàn)系統(tǒng)公共事件列表。

自定義公共事件:應(yīng)用自定義一些公共事件用來(lái)實(shí)現(xiàn)跨進(jìn)程的事件通信能力。

公共事件按發(fā)送方式可分為:無(wú)序公共事件、有序公共事件和粘性公共事件。

無(wú)序公共事件:CES轉(zhuǎn)發(fā)公共事件時(shí),不考慮訂閱者是否接收到,按訂閱者訂閱先后順序轉(zhuǎn)發(fā)。

有序公共事件:CES轉(zhuǎn)發(fā)公共事件時(shí),按訂閱者訂閱先后順序,在接收到前一個(gè)訂閱者回復(fù)后,再轉(zhuǎn)發(fā)下一個(gè)訂閱者。

粘性公共事件:能夠讓訂閱者收到在訂閱前已經(jīng)發(fā)送的公共事件就是粘性公共事件。普通的公共事件只能在訂閱后發(fā)送才能收到,而粘性公共事件的特殊性就是可以先發(fā)送后訂閱。發(fā)送粘性事件必須是系統(tǒng)應(yīng)用或系統(tǒng)服務(wù),且需要申請(qǐng)ohos.permission.COMMONEVENT_STICKY權(quán)限。

每個(gè)應(yīng)用都可以按需訂閱公共事件,訂閱成功,當(dāng)公共事件發(fā)布時(shí),系統(tǒng)會(huì)將其發(fā)送給對(duì)應(yīng)的應(yīng)用。這些公共事件可能來(lái)自系統(tǒng)、其他應(yīng)用和應(yīng)用自身。

2.1.1、引入commonEvent模塊

import commonEvent from '@ohos.commonEvent';

2.1.2、commonEvent函數(shù)

declare namespace commonEvent {
function publish(event: string, callback: AsyncCallback<void>): void;
function publish(event: string, options: CommonEventPublishData, callback: AsyncCallback<void>): void;
function publishAsUser(event: string, userId: number, callback: AsyncCallback<void>): void;
function publishAsUser(event: string, userId: number, options: CommonEventPublishData, callback: AsyncCallback<void>): void;
function createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback<CommonEventSubscriber>): void;
function createSubscriber(subscribeInfo: CommonEventSubscribeInfo): Promise<CommonEventSubscriber>;
function subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback<CommonEventData>): void;
function unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback<void>): void;
}

其中,參數(shù)定義如下:

publish:發(fā)送公共事件,event 表示事件名稱。

publishAsUser:發(fā)送指定用戶的公共事件。

createSubscriber:創(chuàng)建事件的訂閱者。

subscribe:訂閱事件,可以是公共事件,也可以是自定義事件。

unsubscribe:取消訂閱事件,一旦取消,后續(xù)對(duì)的事件將不再接收。

2.1.3、創(chuàng)建訂閱者

function createSubscriber(subscribeInfo: CommonEventSubscribeInfo, callback: AsyncCallback<CommonEventSubscriber>): void;
function createSubscriber(subscribeInfo: CommonEventSubscribeInfo): Promise<CommonEventSubscriber>;

以異步方法構(gòu)造CommonEventSubscriber對(duì)象,創(chuàng)建公共事件訂閱者對(duì)象,使用callback形式返回。

其中,參數(shù)定義如下:

參數(shù)名類型必填說(shuō)明
subscribeInfoCommonEventSubscribeInfo公共事件訂閱者信息
callbackAsyncCallback事件監(jiān)聽(tīng)回調(diào)函數(shù),當(dāng)收到訂閱的事件時(shí),回調(diào)訂閱的事件數(shù)據(jù)

2.1.4、開(kāi)啟訂閱事件

function subscribe(subscriber: CommonEventSubscriber, callback: AsyncCallback<CommonEventData>): void;

以異步方法訂閱公共事件,使用callback形式返回。在調(diào)用subscriber接口訂閱公共事件前,需要先通過(guò)createSubscriber接口創(chuàng)建一個(gè)CommonEventSubscriber對(duì)象。

其中,參數(shù)定義如下:

參數(shù)名類型必填說(shuō)明
subscribeInfoCommonEventSubscribeInfo公共事件訂閱者信息
callbackAsyncCallback事件監(jiān)聽(tīng)回調(diào)函數(shù),當(dāng)收到訂閱的事件時(shí),回調(diào)訂閱的事件數(shù)據(jù)

2.1.5、取消訂閱事件

function unsubscribe(subscriber: CommonEventSubscriber, callback?: AsyncCallback<void>): void;

以異步方法取消訂閱公共事件,使用callback形式返回。與subscribe接口相同,需要傳入一個(gè)已創(chuàng)建的CommonEventSubscriber對(duì)象。

其中,參數(shù)定義如下:

參數(shù)名類型必填說(shuō)明
subscribeInfoCommonEventSubscribeInfo公共事件訂閱者信息
callbackAsyncCallback事件監(jiān)聽(tīng)回調(diào)函數(shù),當(dāng)收到訂閱的事件時(shí),回調(diào)訂閱的事件數(shù)據(jù)

2.1.6、發(fā)布事件

function publish(event: string, callback: AsyncCallback<void>): void;
function publish(event: string, options: CommonEventPublishData, callback: AsyncCallback<void>): void;
function publishAsUser(event: string, userId: number, callback: AsyncCallback<void>): void;
function publishAsUser(event: string, userId: number, options: CommonEventPublishData, callback: AsyncCallback<void>): void;

以callback形式發(fā)布公共事件。

其中,參數(shù)定義如下:

參數(shù)名類型必填說(shuō)明
subscribeInfoCommonEventSubscribeInfo公共事件訂閱者信息
callbackAsyncCallback事件監(jiān)聽(tīng)回調(diào)函數(shù),當(dāng)收到訂閱的事件時(shí),回調(diào)訂閱的事件數(shù)據(jù)

3、程序解析

按照頁(yè)面劃分,本案例大致可分為如下幾個(gè)頁(yè)面:

(1)Launch.ets:應(yīng)用顯示菜單頁(yè)面。進(jìn)入應(yīng)用顯示菜單頁(yè),可選擇“進(jìn)入”,“歷史”,“設(shè)置”及“關(guān)于”幾個(gè)選項(xiàng)。

(2)Main.ets:主頁(yè)面。顯示“進(jìn)入監(jiān)控”按鍵,“開(kāi)始監(jiān)控”按鈕,將開(kāi)始監(jiān)聽(tīng)系統(tǒng)公共事件,并進(jìn)行計(jì)時(shí),此時(shí)按鈕內(nèi)容變更為“停止監(jiān)聽(tīng)”;點(diǎn)擊停止監(jiān)聽(tīng)按鈕,頁(yè)面上將顯示本次監(jiān)聽(tīng)時(shí)長(zhǎng)及監(jiān)聽(tīng)期間收到的干擾信息匯總,并在頁(yè)面右下角顯示“查看詳情”按鈕,點(diǎn)擊按鈕將跳轉(zhuǎn)至詳情頁(yè),顯示監(jiān)聽(tīng)期間收到的干擾信息,應(yīng)用當(dāng)前僅監(jiān)聽(tīng)了亮滅屏、斷聯(lián)網(wǎng)等用戶可操作的系統(tǒng)公共事件,后續(xù)可根據(jù)需求快速擴(kuò)展。

(3)History.ets:歷史頁(yè)面??刹榭从脩舨僮鞅O(jiān)聽(tīng)的歷史記錄,當(dāng)前支持每次運(yùn)行期間最多存儲(chǔ)20條歷史記錄,超過(guò)20條后將刪除歷史數(shù)據(jù)。

(4)Setting.ets:設(shè)置頁(yè)面??蛇M(jìn)行具體系統(tǒng)事件的監(jiān)聽(tīng)配置,應(yīng)用提供了“一直”、“僅本次”及“從不”三個(gè)選項(xiàng),其中“僅本次”選項(xiàng)是指本次應(yīng)用運(yùn)行期間將監(jiān)聽(tīng)特定系統(tǒng)公共事件,應(yīng)用退出后該選項(xiàng)將自動(dòng)調(diào)整為“從不”。

(5)Detail.ets:查看詳情頁(yè)面。可負(fù)責(zé)查看當(dāng)前監(jiān)控的具體信息。供Main.ets調(diào)用。

(6)About.ets:關(guān)于頁(yè)面。顯示軟件信息。

3.1、Launch.ets

首先,定義一個(gè)私有變量feature,用于負(fù)責(zé)具體的公共事件訂閱以及頁(yè)面間跳轉(zhuǎn)。

private feature :launchFeature = new launchFeature(getContext() as context.UIAbilityContext)

注意:feature具體事務(wù)可參考entry/src/main/ets/feature/LaunchFeature.ts。

其次,編輯頁(yè)面顯示界面。

build() {
Column() {
Image($rawfile('jumpToStart.png'))
.objectFit(ImageFit.Contain)
.width(160)
.height(75)
.onClick(this.feature.jumpToStart)
.position({ x: '30%', y: '20%' })
Image($rawfile('jumpToHistory.png'))
.objectFit(ImageFit.Contain)
.width(160)
.height(75)
.onClick(this.feature.jumpToHistory)
.position({ x: '30%', y: '35%' })
Image($rawfile('jumpTosetting.png'))
.objectFit(ImageFit.Contain)
.width(160)
.height(75)
.onClick(this.feature.jumpToSetting)
.position({ x: '30%', y: '50%' })
Image($rawfile('jumpAbout.png'))
.objectFit(ImageFit.Contain)
.width(160)
.height(75)
.onClick(this.feature.jumpToAbout)
.position({ x: '30%', y: '65%' })
}
.backgroundImage($rawfile('vbg720.png'))
.backgroundImageSize(ImageSize.Contain)
.width('100%')
.height('100%')
}

再次,創(chuàng)建LauchFeatrue.ts,主要負(fù)責(zé)頁(yè)面跳轉(zhuǎn)和記錄公共事件記錄。

其中,負(fù)責(zé)頁(yè)面跳轉(zhuǎn)的代碼如下所示:

jumpToHistory = () => {
Logger.info("ready to jump to history page")
router.push({
url: 'pages/History',
params: {}
})
}

jumpToSetting = () => {
Logger.info("ready to jump to setting page")
router.push({
url: 'pages/Setting',
params: {}
})
}
......

其中,記錄公共事件記錄的代碼如下所示:

private callbackFunc = (error, event) => {
this.pref.has(consts.DATA_BASE_KEY_TOTAL_TIMES, (err, ret) => {
if (ret) {
this.pref.get(consts.DATA_BASE_KEY_TOTAL_TIMES, []).then((value) => {
this.insertRecord(event, value)
})
} else {
let value: Array<string> = []
this.insertRecord(event, value)
}
})
if (this.currentRecordTimes >= consts.MAX_RECORD_NUM) {
this.subscriber.finishCommonEvent()
return
}
this.subscriber.abortCommonEvent()
this.subscriber.finishCommonEvent()
this.currentRecordTimes++
}

private callbackLowFunc = (error, event) => {
this.currentRecordTimes = 0
this.pref.get(consts.DATA_BASE_KEY_TOTAL_TIMES, []).then((value: Array<string>) => {
for (let i = 0; i < consts.MAX_RECORD_NUM; i++) {
this.pref.delete(value[i]).then(() => {
this.pref.flush()
})
}
})
this.currentRecordTimes = 0;
}

最后,定義onPageShow(),在用戶瀏覽頁(yè)面時(shí)觸發(fā)該事件。

async onPageShow() {
await this.feature.init()
}

3.2、Main.ets

首先,定義一個(gè)實(shí)際負(fù)責(zé)main頁(yè)面邏輯操作的類對(duì)象。

private feature:mainFeature = new mainFeature()

其次,在build()中定義按鍵畫(huà)面。

Image(this.btnSrc)
.objectFit(ImageFit.Contain).size({ width: 320, height: 150 })
.onClick(this.executeCallBack)

再次,this.executeCallBack()根據(jù)btnState數(shù)值變化開(kāi)啟或關(guān)閉公共事件監(jiān)聽(tīng)。

private executeCallBack = () => {
if (!this.btnState) {
this.handleStart()
} else {
this.handleStop()
}
}

再次,定義handleStart()開(kāi)啟公共事件監(jiān)聽(tīng)。

private handleStart = () => {
this.btnState = true
this.btnSrc = $rawfile('stop.png')
this.detailState = Visibility.None
this.currentState = Visibility.Visible
this.totalEventsInString = ''
this.totalEvents = 0
this.totalTimeInString = ''
// 獲取系統(tǒng)時(shí)間
sysTime.getCurrentTime().then((curTime) => {
this.startTime = curTime
let subscriberInfo = {
events: this.feature.getCurrentValidEvents()
}
// 創(chuàng)建訂閱者
commonEvent.createSubscriber(subscriberInfo, (error, subscriber) => {
this.validEventsSubscriber = subscriber
// 開(kāi)啟訂閱事件
commonEvent.subscribe(subscriber, this.systemEventCallback)
})
})
}

最后,定義handleStop()關(guān)閉公共事件監(jiān)聽(tīng)。

private handleStop = () => {
this.btnState = false
this.btnSrc = $rawfile('start.png')
this.detailState = Visibility.Visible
this.currentState = Visibility.None
this.totalEventsInString = this.totalEvents.toString()
// 刷新時(shí)間
sysTime.getCurrentTime().then((curTime) => {
this.totalTimeInString = utils.convertTimeToFormatString(curTime - this.startTime)
// 取消訂閱事件
commonEvent.unsubscribe(this.validEventsSubscriber, () => {
Logger.info("unsubscribe called")
})
let options = {
isOrdered: true,
parameters: {
'startTime': utils.getLocaleTime(this.startTime),
'endTime': utils.getLocaleTime(curTime),
'totalTime': this.totalTimeInString,
'totalEvents': this.totalEventsInString,
}
}
// 發(fā)布公共事件
commonEvent.publish(consts.COMMON_EVENT_FINISH_MEDITATION, options, () => {
Logger.info("success to publish COMMON_EVENT_FINISH_MEDITATION")
})
})
}

4、項(xiàng)目編譯

4.1、打開(kāi)項(xiàng)目

打開(kāi)DevEco Studio,再打開(kāi)自定義通知項(xiàng)目。

4.2、編譯程序

點(diǎn)擊菜單欄上的“Build” -> "Rebuild Project"。如果出現(xiàn)無(wú)法編譯,則注意查看Event Log界面。如下所示:

d591e662-761a-11ef-bb4b-92fbcf53809c.png

點(diǎn)擊Run 'npm install',讓DevEco Studio安裝相關(guān)依賴包。

重新點(diǎn)擊菜單欄上的“Build” -> "Rebuild Project"。出現(xiàn)如下錯(cuò)誤:

d5ad6414-761a-11ef-bb4b-92fbcf53809c.png

點(diǎn)擊上圖紅色框部分,安裝相關(guān)服務(wù)。

重新點(diǎn)擊菜單欄上的“Build” -> "Rebuild Project",編譯成功。

d5c75f90-761a-11ef-bb4b-92fbcf53809c.png

4.3、安裝程序

點(diǎn)擊“entry”按鈕,將項(xiàng)目程序安裝到設(shè)備端。如下圖所示:

d5ea4b22-761a-11ef-bb4b-92fbcf53809c.png

如果出現(xiàn)下述報(bào)錯(cuò),表示無(wú)法安裝。如圖所示:

d5fe24b2-761a-11ef-bb4b-92fbcf53809c.png

點(diǎn)擊上圖紅色框的藍(lán)色字體,彈出"Project Structure"對(duì)話框,點(diǎn)擊"Apply",再點(diǎn)擊"OK"。如圖所示:

d6212e12-761a-11ef-bb4b-92fbcf53809c.png

重新點(diǎn)擊“entry”按鈕,將項(xiàng)目程序安裝到設(shè)備端。

d63d6762-761a-11ef-bb4b-92fbcf53809c.png

5、運(yùn)行結(jié)果

運(yùn)行結(jié)果如下所示

d650d4b4-761a-11ef-bb4b-92fbcf53809c.png

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • APP
    APP
    +關(guān)注

    關(guān)注

    33

    文章

    1592

    瀏覽量

    75994
  • 應(yīng)用開(kāi)發(fā)

    關(guān)注

    0

    文章

    63

    瀏覽量

    9964
  • OpenHarmony
    +關(guān)注

    關(guān)注

    33

    文章

    3952

    瀏覽量

    21103
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    HarmonyOS開(kāi)發(fā)實(shí)例:【事件的訂閱發(fā)布

    公共事件相關(guān)的功能,實(shí)現(xiàn)了一個(gè)檢測(cè)用戶部分行為的應(yīng)用。
    的頭像 發(fā)表于 04-15 17:36 ?2104次閱讀
    HarmonyOS<b class='flag-5'>開(kāi)發(fā)</b>實(shí)例:【事件的<b class='flag-5'>訂閱</b>和<b class='flag-5'>發(fā)布</b>】

    基于ArkTS語(yǔ)言OpenHarmony APP應(yīng)用開(kāi)發(fā):HelloOpenharmony

    1、程序簡(jiǎn)介 該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫(xiě)的UI應(yīng)用類:HelloOpenHarmony。 本案例是基于API 9接口開(kāi)發(fā)。 本案例已在OpenHarmony凌蒙派-
    發(fā)表于 09-14 12:47

    基于ArkTS語(yǔ)言OpenHarmony APP應(yīng)用開(kāi)發(fā):自定義通知

    OpenHarmony凌蒙派-RK3568開(kāi)發(fā)板驗(yàn)證通過(guò),具體代碼可參考:https://gitee.com/Lockzhiner-Electronics/lockzhiner-rk3568-openharmony
    發(fā)表于 09-14 15:12

    基于ArkTS語(yǔ)言OpenHarmony APP應(yīng)用開(kāi)發(fā)公共事件的訂閱發(fā)布

    監(jiān)聽(tīng)特定系統(tǒng)公共事件,應(yīng)用退出后該選項(xiàng)將自動(dòng)調(diào)整為“從不”。 返回值應(yīng)用菜單頁(yè)面,點(diǎn)擊“關(guān)于”可查看應(yīng)用版本信息及本示例的說(shuō)明。 本案例已在OpenHarmony凌蒙派-RK3568開(kāi)發(fā)板驗(yàn)證通過(guò)
    發(fā)表于 09-18 13:16

    HarmonyOS應(yīng)用開(kāi)發(fā)-公共事件處理

    開(kāi)發(fā)過(guò)程中service想要控制多個(gè)ability時(shí),可以考慮使用公共事件處理。發(fā)布無(wú)序的公共事件: //發(fā)布
    發(fā)表于 11-02 15:15

    HUAWEI DevEco Studio 3.1版本發(fā)布,配套ArkTS聲明式開(kāi)發(fā)全面升級(jí)

    構(gòu)建產(chǎn)物。 3)新增支持ArkTS/JS與C/C++跨語(yǔ)言調(diào)試特性,在C/C++工程中,采用ArkTS/JS與C/C++進(jìn)行混合開(kāi)發(fā),能夠在ArkT
    發(fā)表于 11-17 11:52

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-Stage模型ArkTS語(yǔ)言AbilityConstant

    狀態(tài)。APP_RECOVERY1應(yīng)用恢復(fù)保存狀態(tài)。接口示例:*附件:HarmonyOSOpenHarmony應(yīng)用開(kāi)發(fā)-stage模型ArkTS語(yǔ)言
    發(fā)表于 04-03 09:15

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-Stage模型ArkTS語(yǔ)言AbilityStage

    進(jìn)行初始化時(shí)回調(diào)。context接口示例:*附件:HarmonyOSOpenHarmony應(yīng)用開(kāi)發(fā)-stage模型ArkTS語(yǔ)言AbilityStage.docx
    發(fā)表于 04-07 15:16

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-Stage模型ArkTS語(yǔ)言擴(kuò)展能力基類

    \'@ohos.app.ability.ExtensionAbility\'; 接口示例: *附件:HarmonyOSOpenHarmony應(yīng)用開(kāi)發(fā)-stage模型ArkTS
    發(fā)表于 04-26 10:00

    HarmonyOS/OpenHarmony應(yīng)用開(kāi)發(fā)-ArkTS語(yǔ)言基本語(yǔ)法說(shuō)明

    的封裝和復(fù)用UI描述。 @Extend/@Style:擴(kuò)展內(nèi)置組件和封裝屬性樣式,更靈活地組合內(nèi)置組件。 stateStyles:多態(tài)樣式,可以依據(jù)組件的內(nèi)部狀態(tài)的不同,設(shè)置不同樣式。*附件:HarmonyOSOpenHarmony應(yīng)用開(kāi)發(fā)-
    發(fā)表于 06-01 10:25

    HarmonyOS優(yōu)選主力應(yīng)用開(kāi)發(fā)語(yǔ)言-ArkTS概述

    ArkTS是HarmonyOS優(yōu)選的主力應(yīng)用開(kāi)發(fā)語(yǔ)言ArkTS圍繞應(yīng)用開(kāi)發(fā)在TypeScript(簡(jiǎn)稱TS)生態(tài)基礎(chǔ)上做了進(jìn)一步擴(kuò)展,繼承
    發(fā)表于 06-09 10:52

    OpenHarmony ArkTS工程目錄結(jié)構(gòu)(Stage模型)

    一、應(yīng)用工程結(jié)構(gòu) 圖片來(lái)源:OpenHarmony官網(wǎng) AppScope > app.json5:應(yīng)用的全局配置信息。 entry:OpenHarmony工程模塊,編譯構(gòu)建生成一個(gè)
    發(fā)表于 09-18 15:23

    OpenHarmony 應(yīng)用開(kāi)發(fā)SDK、API 與基礎(chǔ)工具

    一、整體說(shuō)明 ArkTS 語(yǔ)言是鴻蒙系統(tǒng)主推的應(yīng)用開(kāi)發(fā)語(yǔ)言。因此鴻蒙系統(tǒng)提供給開(kāi)發(fā)者的 API 絕大部分也是
    發(fā)表于 09-19 15:45

    華為重磅發(fā)布政府與公共事業(yè)行業(yè)智能化架構(gòu)白皮書(shū)

    [中國(guó),上海,2023年9月20日] 華為全聯(lián)接大會(huì)2023期間,華為聚焦公共事業(yè)行業(yè)場(chǎng)景需求,在以“加速政府與公共事業(yè)智能化,共建數(shù)智社會(huì)”主題峰會(huì)上,華為重磅發(fā)布政府與公共事業(yè)行業(yè)
    的頭像 發(fā)表于 09-22 10:21 ?1265次閱讀

    基于ArkTS語(yǔ)言OpenHarmony APP應(yīng)用開(kāi)發(fā):HelloOpenharmony

    1、程序簡(jiǎn)介該程序是基于OpenHarmony標(biāo)準(zhǔn)系統(tǒng)編寫(xiě)的UI應(yīng)用類:HelloOpenHarmony。本案例是基于API9接口開(kāi)發(fā)。本案例已在OpenHarmony凌蒙派-RK35
    的頭像 發(fā)表于 09-15 08:09 ?1484次閱讀
    基于<b class='flag-5'>ArkTS</b><b class='flag-5'>語(yǔ)言</b>的<b class='flag-5'>OpenHarmony</b> <b class='flag-5'>APP</b>應(yīng)用<b class='flag-5'>開(kāi)發(fā)</b>:Hello<b class='flag-5'>Openharmony</b>