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

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

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

鴻蒙開發(fā)Ability Kit程序框架服務(wù):API切換概述 API切換

jf_46214456 ? 來(lái)源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-28 16:23 ? 次閱讀

API切換概述

FA模型和Stage模型由于線程模型和進(jìn)程模型的差異,部分接口僅在FA模型下才能使用,針對(duì)這部分接口在SDK的接口中有FAModelOnly的標(biāo)記,用于提醒開發(fā)者這部分接口僅能在FA模型下使用。因此在切換到Stage模型時(shí),需要將應(yīng)用中用到的FAModelOnly接口替換成Stage模型下對(duì)應(yīng)的接口。下面是startAbility的接口切換示例,全量接口列表請(qǐng)查看后續(xù)章節(jié):

api-switch-overview

startAbility接口由FA模型切換到Stage模型的示例: 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

  • FA模型示例
    import featureAbility from '@ohos.ability.featureAbility';
    import Want from '@ohos.app.ability.Want';
    import hilog from '@ohos.hilog';
    
    const TAG: string = 'PagePageAbilityFirst';
    const domain: number = 0xFF00;
    
    @Entry
    @Component
    struct PagePageAbilityFirst {
    
      build() {
        Column() {
          List({ initialIndex: 0 }) {
            ListItem() {
              Flex({ justifyContent: FlexAlign.SpaceBetween, alignContent: FlexAlign.Center }) {
                //...
              }
              .onClick(() = > {
                (async (): Promise< void > = > {
                  try {
                    hilog.info(domain, TAG, 'Begin to start ability');
                    let want: Want = {
                      bundleName: 'com.samples.famodelabilitydevelop',
                      moduleName: 'entry',
                      abilityName: 'com.samples.famodelabilitydevelop.PageAbilitySingleton'
                    };
                    await featureAbility.startAbility({ want: want });
                    hilog.info(domain, TAG, `Start ability succeed`);
                  }
                  catch (error) {
                    hilog.error(domain, TAG, 'Start ability failed with ' + error);
                  }
                })()
              })
            }
            //...
          }
          //...
        }
        //...
      }
    }
    
  • Stage示例示例
  • HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
    搜狗高速瀏覽器截圖20240326151344.png
import hilog from '@ohos.hilog';
import Want from '@ohos.app.ability.Want';
import common from '@ohos.app.ability.common';
import { BusinessError } from '@ohos.base';
import { Caller } from '@ohos.app.ability.UIAbility';

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

@Entry
@Component
struct Page_UIAbilityComponentsInteractive {
  private context = getContext(this) as common.UIAbilityContext;
  caller: Caller | undefined = undefined;
  build() {
    Column() {
      //...
      List({ initialIndex: 0 }) {
        ListItem() {
          Row() {
            //...
          }
          .onClick(() = > {
            // context為Ability對(duì)象的成員,在非Ability對(duì)象內(nèi)部調(diào)用需要
            // 將Context對(duì)象傳遞過(guò)去
            let wantInfo: Want = {
              deviceId: '', // deviceId為空表示本設(shè)備
              bundleName: 'com.samples.stagemodelabilitydevelop',
              moduleName: 'entry', // moduleName非必選
              abilityName: 'FuncAbilityA',
              parameters: { // 自定義信息
                info: '來(lái)自EntryAbility Page_UIAbilityComponentsInteractive頁(yè)面'
              },
            };
            // context為調(diào)用方UIAbility的UIAbilityContext
            this.context.startAbility(wantInfo).then(() = > {
              hilog.info(DOMAIN_NUMBER, TAG, 'startAbility success.');
            }).catch((error: BusinessError) = > {
              hilog.error(DOMAIN_NUMBER, TAG, 'startAbility failed.');
            });
          })
        }
        //...
      }
      //...
    }
    //...
  }
}

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1472

    瀏覽量

    61749
  • 框架
    +關(guān)注

    關(guān)注

    0

    文章

    398

    瀏覽量

    17404
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2302

    瀏覽量

    42689
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    鴻蒙服務(wù)API集全新呈現(xiàn)-開發(fā)更清晰高效

    鴻蒙服務(wù)API集全新呈現(xiàn),開發(fā)更清晰高效,具體見如下截圖,深黑色部分即本階段公布支持的元服務(wù)API
    發(fā)表于 07-11 10:23

    HarmonyOS NEXT應(yīng)用元服務(wù)開發(fā)Intents Kit(意圖框架服務(wù))本地搜索方案概述

    一、概述 本地搜索是在HarmonyOS歸一化搜索特性,開發(fā)者將應(yīng)用/元服務(wù)內(nèi)的功能和內(nèi)容通過(guò)意圖框架共享到HarmonyOS,即可實(shí)現(xiàn)“一步搜索,內(nèi)容直達(dá)”。 二、典型場(chǎng)景 以“音樂
    發(fā)表于 11-06 10:59

    鴻蒙Java API中aafwk是什么概念?有什么用途?

    1、鴻蒙Java API中的說(shuō)明中aafwk是什么概念?什么文檔的縮寫?用途是什么?如ohos.aafwk.ability2、和ohos.accessibility.ability這一
    發(fā)表于 05-13 10:06

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

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

    windows api大全

    Win32 API是從事Windows應(yīng)用程序開發(fā)所必備的。 首先對(duì)Win32 API函數(shù)做完整的概述;然后收錄五大類函數(shù):
    發(fā)表于 10-14 11:48 ?133次下載
    windows <b class='flag-5'>api</b>大全

    如何搭建API程序_框架api接口規(guī)范

    基于互聯(lián)網(wǎng)的應(yīng)用正變得越來(lái)越普及,在這個(gè)過(guò)程中,有更多的站點(diǎn)將自身的資源開放給開發(fā)者來(lái)調(diào)用。對(duì)外提供的API 調(diào)用使得站點(diǎn)之間的內(nèi)容關(guān)聯(lián)性更強(qiáng),同時(shí)這些開放的平臺(tái)也為用戶、開發(fā)者和中小網(wǎng)站帶來(lái)了更大的價(jià)值。搭建
    發(fā)表于 01-04 17:48 ?1.2w次閱讀
    如何搭建<b class='flag-5'>API</b><b class='flag-5'>程序</b>_<b class='flag-5'>框架</b><b class='flag-5'>api</b>接口規(guī)范

    基于Java的接口快速開發(fā)框架——magic-api

    magic-api 是一個(gè)基于Java的接口快速開發(fā)框架,編寫接口將通過(guò)magic-api提供的UI界面完成,自動(dòng)映射為HTTP接口,無(wú)需定義Controller、Service、Da
    發(fā)表于 07-19 11:42 ?865次閱讀
    基于Java的接口快速<b class='flag-5'>開發(fā)</b><b class='flag-5'>框架</b>——magic-<b class='flag-5'>api</b>

    API測(cè)試框架Grillon概述

    API測(cè)試框架Grillon概述
    的頭像 發(fā)表于 09-08 10:22 ?1981次閱讀

    鴻蒙應(yīng)用模型:【Ability Kit】簡(jiǎn)介

    Ability Kit程序框架服務(wù))提供了應(yīng)用程序開發(fā)
    的頭像 發(fā)表于 05-29 14:41 ?555次閱讀
    <b class='flag-5'>鴻蒙</b>應(yīng)用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】簡(jiǎn)介

    鴻蒙Ability Kit程序框架服務(wù))【Ability內(nèi)頁(yè)面間的跳轉(zhuǎn)】

    基于Stage模型下的Ability開發(fā),實(shí)現(xiàn)Ability內(nèi)頁(yè)面間的跳轉(zhuǎn)和數(shù)據(jù)傳遞。
    的頭像 發(fā)表于 06-03 20:43 ?257次閱讀
    <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'>服務(wù)</b>)【<b class='flag-5'>Ability</b>內(nèi)頁(yè)面間的跳轉(zhuǎn)】

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型概述

    本文介紹如何將一個(gè)FA模型開發(fā)的聲明式范式應(yīng)用切換到Stage模型
    的頭像 發(fā)表于 06-26 14:40 ?310次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</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'>服務(wù)</b>:FA模型<b class='flag-5'>切換</b>Stage模型<b class='flag-5'>概述</b>

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型指導(dǎo) app和deviceConfig的切換

    為了便于開發(fā)者維護(hù)應(yīng)用級(jí)別的屬性配置,Stage模型將config.json中的app和deviceConfig標(biāo)簽提取到了app.json5中進(jìn)行配置,并對(duì)部分標(biāo)簽名稱進(jìn)行了修改,具體差異見下表。
    的頭像 發(fā)表于 06-27 10:01 ?309次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</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'>服務(wù)</b>:FA模型<b class='flag-5'>切換</b>Stage模型指導(dǎo) app和deviceConfig的<b class='flag-5'>切換</b>

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):FA模型切換Stage模型指導(dǎo) module的切換

    從FA模型切換到Stage模型時(shí),開發(fā)者需要將config.json文件module標(biāo)簽下的配置遷移到module.json5配置文件module標(biāo)簽下,具體差異見下列表格。
    的頭像 發(fā)表于 06-27 14:16 ?381次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</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'>服務(wù)</b>:FA模型<b class='flag-5'>切換</b>Stage模型指導(dǎo) module的<b class='flag-5'>切換</b>

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):PageAbility切換 組件切換

    FA模型中PageAbility對(duì)應(yīng)Stage模型中的UIAbility,PageAbility切換為UIAbility的方法如下。
    的頭像 發(fā)表于 06-28 11:38 ?313次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</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'>服務(wù)</b>:PageAbility<b class='flag-5'>切換</b> 組件<b class='flag-5'>切換</b>

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):ServiceAbility切換 組件切換

    FA模型中的ServiceAbility對(duì)應(yīng)Stage模型中的ServiceExtensionAbility。Stage模型下的ServiceExtensionAbility為系統(tǒng)API,只有系統(tǒng)
    的頭像 發(fā)表于 06-28 10:24 ?268次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</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'>服務(wù)</b>:ServiceAbility<b class='flag-5'>切換</b> 組件<b class='flag-5'>切換</b>