使用顯式Want啟動Ability

2024-01-25 12:25 更新

在應(yīng)用使用場景中,當用戶點擊某個按鈕時,應(yīng)用經(jīng)常需要拉起指定UIAbility組件來完成某些特定任務(wù)。下面介紹如何通過顯式Want拉起應(yīng)用內(nèi)一個指定UIAbility組件。

開發(fā)步驟

  1. Stage模型工程內(nèi),創(chuàng)建一個Ability(此示例內(nèi)命名為callerAbility)與相應(yīng)Page(此示例中名為Index.ets),并在callerAbility.ts文件內(nèi)的onWindowStageCreate函數(shù)內(nèi)通過windowStage.loadContent()方法將兩者綁定。

    1. // ...
    2. // callerAbility.ts
    3. onWindowStageCreate(windowStage) {
    4. // Main window is created, set main page for this ability
    5. console.info('[Demo] EntryAbility onWindowStageCreate')
    6. // Bind callerAbility with a paged named Index
    7. windowStage.loadContent('pages/Index')
    8. }
    9. // ...
  2. 同上方法再創(chuàng)建一個Ability,此示例內(nèi)命名為“calleeAbility”。

  3. 在callerAbility的“Index.ets”頁面內(nèi)新增一個按鈕。

    1. // ...
    2. build() {
    3. Row() {
    4. Column() {
    5. Text('hello')
    6. .fontSize(50)
    7. .fontWeight(FontWeight.Bold)
    8. // A new button with will call explicitStartAbility() when clicked.
    9. Button("CLICKME")
    10. .onClick(this.explicitStartAbility) // explicitStartAbility見下面示例代碼
    11. // ...
    12. }
    13. .width('100%')
    14. }
    15. .height('100%')
    16. }
    17. // ...
  4. 補充相對應(yīng)的onClick方法,并使用顯式Want在方法內(nèi)啟動calleeAbility。bundleName字段可在工程AppScope>app.json5文件內(nèi)獲取;abilityName可在對應(yīng)模塊內(nèi)的“yourModuleName > src > main > module.json5”文件查看。

    1. import common from '@ohos.app.ability.common';
    2. // ...
    3. async explicitStartAbility() {
    4. try {
    5. // Explicit want with abilityName specified.
    6. let want = {
    7. deviceId: "",
    8. bundleName: "com.example.myapplication",
    9. abilityName: "calleeAbility"
    10. };
    11. let context = getContext(this) as common.UIAbilityContext;
    12. await context.startAbility(want);
    13. console.info(`explicit start ability succeed`);
    14. } catch (error) {
    15. console.info(`explicit start ability failed with ${error.code}`);
    16. }
    17. }
    18. // ...
  5. 至此,當您點擊CLICKME按鈕時,應(yīng)看到頁面的跳轉(zhuǎn)。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號