国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

HarmonyOS/OpenHarmony應(yīng)用開發(fā)-Stage模型UIAbility組件使用(五)

這篇具有很好參考價值的文章主要介紹了HarmonyOS/OpenHarmony應(yīng)用開發(fā)-Stage模型UIAbility組件使用(五)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

UIAbility組件間交互(設(shè)備內(nèi))
UIAbility是系統(tǒng)調(diào)度的最小單元。在設(shè)備內(nèi)的功能模塊之間跳轉(zhuǎn)時,會涉及到啟動特定的UIAbility,該UIAbility可以是應(yīng)用內(nèi)的其他UIAbility,也可以是其他應(yīng)用的UIAbility(例如啟動三方支付UIAbility)。
本文將從如下場景分別介紹設(shè)備內(nèi)UIAbility間的交互方式。
啟動應(yīng)用內(nèi)的UIAbility。啟動應(yīng)用內(nèi)的UIAbility并獲取返回結(jié)果。啟動其他應(yīng)用的UIAbility。啟動其他應(yīng)用的UIAbility并獲取返回結(jié)果。啟動UIAbility的指定頁面。通過Call調(diào)用實現(xiàn)UIAbility交互(僅對系統(tǒng)應(yīng)用開放)。
一、啟動應(yīng)用內(nèi)的UIAbility
當一個應(yīng)用內(nèi)包含多個UIAbility時,存在應(yīng)用內(nèi)啟動UIAbility的場景。例如在支付應(yīng)用中從入口UIAbility啟動收付款UIAbility。
假設(shè)應(yīng)用中有兩個UIAbility:EntryAbility和FuncAbility(可以在應(yīng)用的一個Module中,也可以在的不同Module中),需要從EntryAbility的頁面中啟動FuncAbility。
1.在EntryAbility中,通過調(diào)用startAbility()方法啟動UIAbility,want為UIAbility實例啟動的入口參數(shù),其中bundleName為待啟動應(yīng)用的Bundle名稱,abilityName為待啟動的UIAbility名稱,moduleName在待啟動的UIAbility屬于不同的Module時添加,parameters為自定義信息參數(shù)。示例中的context的獲取方式參見獲取UIAbility的Context屬性。

let wantInfo = {
    deviceId: '', // deviceId為空表示本設(shè)備
    bundleName: 'com.example.myapplication',
    abilityName: 'FuncAbility',
    moduleName: 'module1', // moduleName非必選
    parameters: { // 自定義信息
        info: '來自EntryAbility Index頁面',
    },
}
// context為調(diào)用方UIAbility的AbilityContext
this.context.startAbility(wantInfo).then(() => {
    // ...
}).catch((err) => {
    // ...
})

2.在FuncAbility的生命周期回調(diào)文件中接收EntryAbility傳遞過來的參數(shù)。

import UIAbility from '@ohos.app.ability.UIAbility';
import Window from '@ohos.window';

export default class FuncAbility extends UIAbility {
    onCreate(want, launchParam) {
    // 接收調(diào)用方UIAbility傳過來的參數(shù)
        let funcAbilityWant = want;
        let info = funcAbilityWant?.parameters?.info;
        // ...
    }
}

3.在FuncAbility業(yè)務(wù)完成之后,如需要停止當前UIAbility實例,在FuncAbility中通過調(diào)用terminateSelf()方法實現(xiàn)。

// context為需要停止的UIAbility實例的AbilityContext
this.context.terminateSelf((err) => {
    // ...
});

二、啟動應(yīng)用內(nèi)的UIAbility并獲取返回結(jié)果
在一個EntryAbility啟動另外一個FuncAbility時,希望在被啟動的FuncAbility完成相關(guān)業(yè)務(wù)后,能將結(jié)果返回給調(diào)用方。例如在應(yīng)用中將入口功能和帳號登錄功能分別設(shè)計為兩個獨立的UIAbility,在帳號登錄UIAbility中完成登錄操作后,需要將登錄的結(jié)果返回給入口UIAbility。
1.在EntryAbility中,調(diào)用startAbilityForResult()接口啟動FuncAbility,異步回調(diào)中的data用于接收FuncAbility停止自身后返回給EntryAbility的信息。示例中的context的獲取方式參見獲取UIAbility的Context屬性。

let wantInfo = {
    deviceId: '', // deviceId為空表示本設(shè)備
    bundleName: 'com.example.myapplication',
    abilityName: 'FuncAbility',
    moduleName: 'module1', // moduleName非必選
    parameters: { // 自定義信息
        info: '來自EntryAbility Index頁面',
    },
}
// context為調(diào)用方UIAbility的AbilityContext
this.context.startAbilityForResult(wantInfo).then((data) => {
    // ...
}).catch((err) => {
    // ...
})

2.在FuncAbility停止自身時,需要調(diào)用terminateSelfWithResult()方法,入?yún)bilityResult為FuncAbility需要返回給EntryAbility的信息。

const RESULT_CODE: number = 1001;
let abilityResult = {
    resultCode: RESULT_CODE,
    want: {
        bundleName: 'com.example.myapplication',
        abilityName: 'FuncAbility',
        moduleName: 'module1',
        parameters: {
            info: '來自FuncAbility Index頁面',
        },
    },
}
// context為被調(diào)用方UIAbility的AbilityContext
this.context.terminateSelfWithResult(abilityResult, (err) => {
    // ...
});

3.FuncAbility停止自身后,EntryAbility通過startAbilityForResult()方法回調(diào)接收被FuncAbility返回的信息,RESULT_CODE需要與前面的數(shù)值保持一致。

const RESULT_CODE: number = 1001;

// ...

// context為調(diào)用方UIAbility的AbilityContext
this.context.startAbilityForResult(want).then((data) => {
    if (data?.resultCode === RESULT_CODE) {
        // 解析被調(diào)用方UIAbility返回的信息
        let info = data.want?.parameters?.info;
        // ...
    }
}).catch((err) => {
    // ...
})

三、啟動其他應(yīng)用的UIAbility
啟動其他應(yīng)用的UIAbility,通常用戶只需要完成一個通用的操作(例如需要選擇一個文檔應(yīng)用來查看某個文檔的內(nèi)容信息),推薦使用隱式Want啟動。系統(tǒng)會根據(jù)調(diào)用方的want參數(shù)來識別和啟動匹配到的應(yīng)用UIAbility。
啟動UIAbility有顯式Want啟動和隱式Want啟動兩種方式。
顯式Want啟動:啟動一個確定應(yīng)用的UIAbility,在want參數(shù)中需要設(shè)置該應(yīng)用bundleName和abilityName,當需要拉起某個明確的UIAbility時,通常使用顯式Want啟動方式。

隱式Want啟動:根據(jù)匹配條件由用戶選擇啟動哪一個UIAbility,即不明確指出要啟動哪一個UIAbility(abilityName參數(shù)未設(shè)置),在調(diào)用startAbility()方法時,其入?yún)ant中指定了一系列的entities字段(表示目標UIAbility額外的類別信息,如瀏覽器、視頻播放器)和actions字段(表示要執(zhí)行的通用操作,如查看、分享、應(yīng)用詳情等)等參數(shù)信息,然后由系統(tǒng)去分析want,并幫助找到合適的UIAbility來啟動。當需要拉起其他應(yīng)用的UIAbility時,開發(fā)者通常不知道用戶設(shè)備中應(yīng)用的安裝情況,也無法確定目標應(yīng)用的bundleName和abilityName,通常使用隱式Want啟動方式。
本部分主要講解如何通過隱式Want啟動其他應(yīng)用的UIAbility。
1.將多個待匹配的文檔應(yīng)用安裝到設(shè)備,在其對應(yīng)UIAbility的module.json5配置文件中,配置skills的entities字段和actions字段。

{
  "module": {
    "abilities": [
      {
        // ...
        "skills": [
          {
            "entities": [
              // ...
              "entity.system.default"
            ],
            "actions": [
              // ...
              "ohos.want.action.viewData"
            ]
          }
        ]
      }
    ]
  }
}

2.在調(diào)用方want參數(shù)中的entities和action需要被包含在待匹配UIAbility的skills配置的entities和actions中。系統(tǒng)匹配到符合entities和actions參數(shù)條件的UIAbility后,會彈出選擇框展示匹配到的UIAbility實例列表供用戶選擇使用。示例中的context的獲取方式參見獲取UIAbility的Context屬性。

let wantInfo = {
    deviceId: '', // deviceId為空表示本設(shè)備
    // uncomment line below if wish to implicitly query only in the specific bundle.
    // bundleName: 'com.example.myapplication',
    action: 'ohos.want.action.viewData',
    // entities can be omitted.
    entities: ['entity.system.default'],
}

// context為調(diào)用方UIAbility的AbilityContext
this.context.startAbility(wantInfo).then(() => {
    // ...
}).catch((err) => {
    // ...
})

效果示意如下圖所示,點擊“打開PDF文檔”時,會彈出選擇框供用戶選擇。
?

HarmonyOS/OpenHarmony應(yīng)用開發(fā)-Stage模型UIAbility組件使用(五),HarmonyOS/OpenHarmony開發(fā)學習分享,華為,HarmonyOS


3.在文檔應(yīng)用使用完成之后,如需要停止當前UIAbility實例,通過調(diào)用terminateSelf()方法實現(xiàn)。

// context為需要停止的UIAbility實例的AbilityContext
this.context.terminateSelf((err) => {
    // ...
});

?文章來源地址http://www.zghlxwxcb.cn/news/detail-597155.html

到了這里,關(guān)于HarmonyOS/OpenHarmony應(yīng)用開發(fā)-Stage模型UIAbility組件使用(五)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • HarmonyOS/OpenHarmony(Stage模型)應(yīng)用開發(fā)單一手勢(三)

    HarmonyOS/OpenHarmony(Stage模型)應(yīng)用開發(fā)單一手勢(三)

    RotationGesture (value?:{ fingers ? :number ; angle ? :number }) 旋轉(zhuǎn)手勢用于觸發(fā)旋轉(zhuǎn)手勢事件,觸發(fā)旋轉(zhuǎn)手勢的最少手指數(shù)量為2指,最大為5指,最小改變度數(shù)為1度,擁有兩個可選參數(shù): fingers:非必選參數(shù),用于聲明觸發(fā)旋轉(zhuǎn)手勢所需要的最少手指數(shù)量,最小值為2,最大值為5,默認值

    2024年02月09日
    瀏覽(25)
  • HarmonyOS/OpenHarmony應(yīng)用開發(fā)-Stage模型ArkTS語言FormExtensionAbility

    FormExtensionAbility模塊提供了卡片擴展相關(guān)接口。 說明 : 模塊首批接口從API version 9 開始支持。模塊接口僅可在Stage模型下使用。 導入模塊 : import FormExtensionAbility from \\\'@ohos.app.form.FormExtensionAbility\\\'; 屬性: 名稱 類型 可讀 可寫 說明 context FormExtensionContext 是 否 FormExtensionAbility的上下

    2024年02月01日
    瀏覽(25)
  • HarmonyOS/OpenHarmony(Stage模型)卡片開發(fā)應(yīng)用上下文Context使用場景二

    3.創(chuàng)建其他應(yīng)用或其他Module的Context 基類Context提供創(chuàng)建其他應(yīng)用或其他Module的Context的方法為createModuleContext(moduleName:string),創(chuàng)建其他應(yīng)用或者其他Module的Context,從而通過該Context獲取相應(yīng)的資源信息(例如獲取其他Module的獲取應(yīng)用開發(fā)路徑信息)。 調(diào)用createModuleContext(moduleNa

    2024年02月11日
    瀏覽(23)
  • HarmonyOS/OpenHarmony(Stage模型)卡片開發(fā)應(yīng)用上下文Context使用場景一

    HarmonyOS/OpenHarmony(Stage模型)卡片開發(fā)應(yīng)用上下文Context使用場景一

    1.獲取應(yīng)用文件路徑 基類Context提供了獲取應(yīng)用文件路徑的能力,ApplicationContext、AbilityStageContext、UIAbilityContext和ExtensionContext均繼承該能力。應(yīng)用文件路徑屬于應(yīng)用沙箱路徑。上述各類Context獲取的應(yīng)用文件路徑有所不同。 通過ApplicationContext獲取應(yīng)用級別的應(yīng)用文件路徑,此路

    2024年02月11日
    瀏覽(28)
  • 鴻蒙(HarmonyOS)應(yīng)用開發(fā)——應(yīng)用程序入口UIAbility(題目答案)

    1.一個應(yīng)用只能有一個UIAbility。 錯誤(False) 解析:可以有多個,也可以有一個 2.創(chuàng)建的Empty Ability模板工程,初始會生成一個UIAbility文件。 正確(True) 3.每調(diào)用一次router.pushUrl()方法,頁面路由棧數(shù)量均會加1。 錯誤(False) 解析: pushUrl()有兩種模式,一種單實例模式,一種是多實例

    2024年02月04日
    瀏覽(30)
  • HarmonyOS 應(yīng)用開發(fā)之UIAbility組件間交互(設(shè)備內(nèi))

    HarmonyOS 應(yīng)用開發(fā)之UIAbility組件間交互(設(shè)備內(nèi))

    UIAbility是系統(tǒng)調(diào)度的最小單元。在設(shè)備內(nèi)的功能模塊之間跳轉(zhuǎn)時,會涉及到啟動特定的UIAbility,該UIAbility可以是應(yīng)用內(nèi)的其他UIAbility,也可以是其他應(yīng)用的UIAbility(例如啟動三方支付UIAbility)。 本文將從如下場景分別介紹設(shè)備內(nèi)UIAbility間的交互方式。對于跨設(shè)備的應(yīng)用組件交

    2024年04月12日
    瀏覽(18)
  • HarmonyOS/OpenHarmony(Stage模型)卡片開發(fā)AbilityStage組件容器

    AbilityStage是一個Module級別的組件容器,應(yīng)用的HAP在首次加載時會創(chuàng)建一個AbilityStage實例,可以對該Module進行初始化等操作。 AbilityStage與Module一一對應(yīng),即一個Module擁有一個AbilityStage。 DevEco Studio默認工程中未自動生成AbilityStage,如需要使用AbilityStage的能力,可以手動新建一個

    2024年02月11日
    瀏覽(22)
  • HarmonyOS Stage模型 UIAbility生命周期狀態(tài)

    HarmonyOS Stage模型 UIAbility生命周期狀態(tài)

    UIAbility的生命周期包括Create、Foreground、Background、Destroy四個狀態(tài) Create 狀態(tài),在UIAbility實例 創(chuàng)建 時觸發(fā),對應(yīng)onCreate回調(diào)??梢栽趏nCreate回調(diào)中進行相關(guān)初始化操作 Foreground 狀態(tài),在UIAbility 切換至前臺 時觸發(fā)。對應(yīng)onForeground回調(diào),在UIAbility的UI頁面可見之前,即UIAbility切換至

    2024年01月16日
    瀏覽(59)
  • HarmonyOS應(yīng)用開發(fā)學習筆記 UIAbility組件與UI的數(shù)據(jù)同步 EventHub、globalThis

    HarmonyOS應(yīng)用開發(fā)學習筆記 UIAbility組件與UI的數(shù)據(jù)同步 EventHub、globalThis

    1、 HarmoryOS Ability頁面的生命周期 2、 @Component自定義組件 3、HarmonyOS 應(yīng)用開發(fā)學習筆記 ets組件生命周期 4、HarmonyOS 應(yīng)用開發(fā)學習筆記 ets組件樣式定義 @Styles裝飾器:定義組件重用樣式 @Extend裝飾器:定義擴展組件樣式 5、HarmonyOS 應(yīng)用開發(fā)學習筆記 state狀態(tài)管理概述 6、HarmonyO

    2024年02月03日
    瀏覽(31)
  • 《HarmonyOS開發(fā) – OpenHarmony開發(fā)筆記(基于小型系統(tǒng))》第4章 OpenHarmony應(yīng)用開發(fā)實例

    《HarmonyOS開發(fā) – OpenHarmony開發(fā)筆記(基于小型系統(tǒng))》第4章 OpenHarmony應(yīng)用開發(fā)實例

    開發(fā)環(huán)境 : 開發(fā)系統(tǒng):Ubuntu 20.04 開發(fā)板:Pegasus物聯(lián)網(wǎng)開發(fā)板 MCU:Hi3861 OpenHarmony版本:3.0.1-LTS 1.新建工程及源碼 新建目錄 在applications/sample/myapp中新建src目錄以及myapp.c文件,代碼如下所示。 新建編譯組織文件 新建applications/sample/myapp/BUILD.gn文件,內(nèi)容如下所示: static_libr

    2024年02月09日
    瀏覽(36)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包