衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

鴻蒙開發Ability Kit程序框架服務:Stage模型啟動FA模型PageAbility

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-26 09:50 ? 次閱讀

Stage模型啟動FA模型PageAbility

本小節介紹Stage模型的兩種應用組件如何啟動FA模型的PageAbility組件。

UIAbility啟動PageAbility

UIAbility啟動PageAbility和UIAbility啟動UIAbility的方式完全相同。

說明: 需注意FA模型中abilityName由bundleName + AbilityName組成,具體見示例。 開發前請熟悉鴻蒙開發指導文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

import { common, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';

const TAG: string = '[Page_StartFAModel]';
const DOMAIN_NUMBER: number = 0xFF00;

@Entry
@Component
struct Page_StartFAModel {
  private context = getContext(this) as common.UIAbilityContext;

  build() {
    Column() {
      //...
      List({ initialIndex: 0 }) {
        ListItem() {
          Row() {
            //...
          }
          .onClick(() = > {
            let want: Want = {
              bundleName: 'com.samples.famodelabilitydevelop',
              abilityName: 'com.samples.famodelabilitydevelop.MainAbility'
            };
            this.context.startAbility(want).then(() = > {
              hilog.info(DOMAIN_NUMBER, TAG, 'Start Ability successfully.');
            }).catch((error: BusinessError) = > {
              hilog.error(DOMAIN_NUMBER, TAG, `Ability failed: ` + JSON.stringify(error));
            });
          })
        }
        //...
      }
      //...
    }
    //...
  }
}

UIAbility訪問PageAbility(startAbilityForResult)

startAbilityForResult和startAbility的區別是當PageAbility銷毀的時候會返回執行結果。

UIAbility通過startAbilityForResult啟動PageABility和UIAbility通過startAbilityForResult啟動UIAbility的代碼一樣,沒有任何區別。
HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿

新文檔.png

import { common, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { promptAction } from '@kit.ArkUI';

const TAG: string = '[Page_StartFAModel]';
const DOMAIN_NUMBER: number = 0xFF00;

@Entry
@Component
struct Page_StartFAModel {
  private context = getContext(this) as common.UIAbilityContext;

  build() {
    Column() {
      //...
      List({ initialIndex: 0 }) {
        ListItem() {
          Row() {
            //...
          }
          .onClick(() = > {
            let want: Want = {
              bundleName: 'com.samples.famodelabilitydevelop',
              abilityName: 'com.samples.famodelabilitydevelop.MainAbility',
            };
            this.context.startAbilityForResult(want).then((result) = > {
              hilog.info(DOMAIN_NUMBER, TAG, 'Ability verify result: ' + JSON.stringify(result));
              if (result !== null) {
                promptAction.showToast({
                  message: JSON.stringify(result)
                });
              }
            }).catch((error: BusinessError) = > {
              hilog.error(DOMAIN_NUMBER, TAG, `Ability failed: ` + JSON.stringify(error));
            });
          })
        }
        //...
      }
      //...
    }
    //...
  }
}

ExtensionAbility啟動PageAbility

下面以ServiceExtensionAbility為例來說明ExtensionAbility啟動PageAbility。ServiceExtensionAbility啟動PageAbility和ServiceExtensionAbility啟動UIAbility的方式完全相同。

import { Want, ServiceExtensionAbility } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { rpc } from '@kit.IPCKit';
import ServiceExtImpl from '../IdlServiceExt/idl_service_ext_impl';

const TAG: string = '[ServiceExtAbility]';
const DOMAIN_NUMBER: number = 0xFF00;

export default class ServiceExtAbility extends ServiceExtensionAbility {
  serviceExtImpl: ServiceExtImpl = new ServiceExtImpl('ExtImpl');

  onCreate(want: Want): void {
    let serviceExtensionContext = this.context;
    hilog.info(DOMAIN_NUMBER, TAG, `onCreate, want: ${want.abilityName}`);
  };

  onRequest(want: Want, startId: number): void {
    hilog.info(DOMAIN_NUMBER, TAG, `onRequest, want: ${want.abilityName}`);
    if (want.parameters?.key === 'ConnectFaPageAbility') {
      let wantFA: Want = {
        bundleName: 'com.samples.famodelabilitydevelop',
        abilityName: 'com.samples.famodelabilitydevelop.MainAbility',
      };
      this.context.startAbility(wantFA).then(() = > {
        hilog.info(DOMAIN_NUMBER, TAG, 'Start Ability successfully.');
      }).catch((error: BusinessError) = > {
        hilog.info(DOMAIN_NUMBER, TAG, `Ability failed: ${JSON.stringify(error)}`);
      });
    }
  };

  onConnect(want: Want): rpc.RemoteObject {
    hilog.info(DOMAIN_NUMBER, TAG, `onConnect, want: ${want.abilityName}`);
    // 返回ServiceExtImpl對象,客戶端獲取后便可以與ServiceExtensionAbility進行通信
    return this.serviceExtImpl as rpc.RemoteObject;
  };

  onDisconnect(want: Want): void {
    hilog.info(DOMAIN_NUMBER, TAG, `onDisconnect, want: ${want.abilityName}`);
  };

  onDestroy(): void {
    hilog.info(DOMAIN_NUMBER, TAG, 'onDestroy');
  };
}

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 框架
    +關注

    關注

    0

    文章

    403

    瀏覽量

    17542
  • 模型
    +關注

    關注

    1

    文章

    3305

    瀏覽量

    49218
  • 鴻蒙
    +關注

    關注

    57

    文章

    2392

    瀏覽量

    43050
收藏 人收藏

    評論

    相關推薦

    鴻蒙Ability開發-Stage模型Ability的創建和使用

    Ability開發技術的簡單運用,更多的鴻蒙開發技術可以前往我主頁查詢,下面分享鴻蒙開發4.0
    發表于 01-08 15:34

    OpenHarmony開發Ability架構

    管理,從而實現對用戶程序的調度。Ability框架在API 8及更早版本使用FA模型FA
    發表于 05-12 15:12

    使用FeatureAbility模塊啟動其他Ability

    直接操作,可以和FA配合使用。在JS/eTS語言中,Ability框架又被分為FA模型Stage
    發表于 09-02 15:04

    HarmonyOS/OpenHarmony應用開發-FA模型綜述

    FA模型整體架構****HarmonyOS用戶程序開發本質上就是開發Ability。Harmo
    發表于 12-07 10:39

    鴻蒙服務萬能卡片開發-stage模型fa模型的卡片區別

    一、項目類型 Application: 應用開發 Atomic Service:原子化服務開發 這里選擇Empty Ability模板創建項目。 二、
    發表于 05-22 14:20

    鴻蒙應用模型:【Ability Kit】簡介

    Ability Kit程序框架服務)提供了應用程序開發
    的頭像 發表于 05-29 14:41 ?713次閱讀
    <b class='flag-5'>鴻蒙</b>應用<b class='flag-5'>模型</b>:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡介

    鴻蒙開發Ability Kit程序框架服務FA模型Stage模型應用組件互通綜述

    FA模型Stage模型是兩套不同的應用模型,他們擁有各自的組件。FA
    的頭像 發表于 06-24 16:43 ?581次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>與<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>應用組件互通綜述

    鴻蒙開發Ability Kit程序框架服務FA模型啟動Stage模型UIAbility

    本文介紹FA模型的三種應用組件如何啟動Stage模型的UIAbility組件。
    的頭像 發表于 06-25 16:00 ?420次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b><b class='flag-5'>啟動</b><b class='flag-5'>Stage</b><b class='flag-5'>模型</b>UIAbility

    鴻蒙開發Ability Kit程序框架服務FA模型綁定Stage模型ServiceExtensionAbility

    本文介紹FA模型的三種應用組件如何綁定Stage模型的ServiceExtensionAbility組件。
    的頭像 發表于 06-25 10:43 ?346次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>綁定<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>ServiceExtensionAbility

    鴻蒙開發Ability Kit程序框架服務FA模型訪問Stage模型DataShareExtensionAbility

    無論FA模型還是Stage模型,數據讀寫功能都包含客戶端和服務端兩部分。
    的頭像 發表于 06-25 14:30 ?446次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>訪問<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>DataShareExtensionAbility

    鴻蒙開發Ability Kit程序框架服務Stage模型綁定FA模型ServiceAbility

    本小節介紹Stage模型的兩種應用組件如何綁定FA模型ServiceAbility組件。
    的頭像 發表于 06-25 21:47 ?356次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>綁定<b class='flag-5'>FA</b><b class='flag-5'>模型</b>ServiceAbility

    鴻蒙開發Ability Kit程序框架服務FA模型切換Stage模型概述

    本文介紹如何將一個FA模型開發的聲明式范式應用切換到Stage模型
    的頭像 發表于 06-26 14:40 ?385次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>切換<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>概述

    鴻蒙開發Ability Kit程序框架服務FA模型切換Stage模型指導 app和deviceConfig的切換

    為了便于開發者維護應用級別的屬性配置,Stage模型將config.json中的app和deviceConfig標簽提取到了app.json5中進行配置,并對部分標簽名稱進行了修改,具體差異見下表。
    的頭像 發表于 06-27 10:01 ?407次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>切換<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>指導 app和deviceConfig的切換

    鴻蒙開發Ability Kit程序框架服務FA模型切換Stage模型指導 module的切換

    FA模型切換到Stage模型時,開發者需要將config.json文件module標簽下的配置遷移到module.json5配置文件mod
    的頭像 發表于 06-27 14:16 ?529次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>FA</b><b class='flag-5'>模型</b>切換<b class='flag-5'>Stage</b><b class='flag-5'>模型</b>指導 module的切換

    鴻蒙開發Ability Kit程序框架服務PageAbility切換 組件切換

    FA模型PageAbility對應Stage模型中的UIAbility,PageAbility
    的頭像 發表于 06-28 11:38 ?396次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發</b><b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b><b class='flag-5'>程序</b><b class='flag-5'>框架</b><b class='flag-5'>服務</b>:<b class='flag-5'>PageAbility</b>切換 組件切換
    大发888优惠活动| 大发888充值平台| 网上百家乐官网有人赢过吗| 大发888可靠吗| 百家乐越长的路| 新全讯网768866| 百家乐视频游戏道具| 手机百家乐官网的玩法技巧和规则| 外汇| 鸿博,| 大发888娱乐网下| 百家乐官网论坛bocaila| 百家乐官网是多少个庄闲| bet365金融| 巴厘岛百家乐的玩法技巧和规则 | 澳门百家乐官网怎么看小路| 博白县| 真龙娱乐| 德州扑克 视频| 威尼斯人娱乐网网上百家乐| A8百家乐娱乐| 澳门百家乐奥秘| 百家乐出千原理| 24山家坐向| 玉树县| 澳门顶级赌场百家乐| 大发888是什么东| 实战百家乐十大取胜原因百分百战胜百家乐不买币不吹牛只你能做到按我说的.百家乐基本规则 | 百家乐官网现金网平台排行榜| 百家乐官网真钱娱乐| 河津市| 在线体育投注| 金都娱乐场| 伊金霍洛旗| 百家乐官网单跳打法| 聚宝盆百家乐官网游戏| 金龙棋牌下载| 六合彩曾道人| 365体育在线投注| 新利娱乐| 百家乐官网怎样发牌|