那曲檬骨新材料有限公司

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娱乐城送钱| 屯门区| 视频百家乐是真是假| 百家乐官网汝河路| 青鹏棋牌游戏大厅v3.0| 跪求百家乐打法| 金城百家乐官网买卖路| 百家乐官网赢得秘诀| 百家乐官网胜率被控制| 大发888网站是多少呢| 正品百家乐游戏| 百家乐平台信誉排名| 肯博百家乐官网的玩法技巧和规则 | 王牌百家乐的玩法技巧和规则| 澳门百家乐博彩能做到不输吗| 户型风水不好害死人 24种破财户| 百家乐官网哪里可以玩| 百家乐官网作弊演示| 新锦江娱乐城备用网址| 威尼斯人娱乐城返水| 加州百家乐的玩法技巧和规则| 租nongcun房看风水做生意的| 百家乐官网评级网站| 百家乐官网多少点数算赢| 娱乐城棋牌| 竞彩比分| 五星百家乐的玩法技巧和规则| 百家乐h游戏怎么玩| 百家乐游戏怎样玩| 百家乐官网如何捕捉长龙| 在线百家乐官网技巧| 百家乐官网节目视频| 株洲市| 锡林浩特市| 百家乐官网优惠现金| 百家乐官网玩法百科| 中卫市| 元阳县| 邵阳市| 百家乐官网游戏机图片| 百家乐官网输一押二|