0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

鸿蒙开发Ability Kit程序框架服务:API切换概述 API切换

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-28 16:23 次阅读

API切换概述

FA模型和Stage模型由于线程模型和进程模型的差异,部分接口仅在FA模型下才能使用,针对这部分接口在SDK的接口中有FAModelOnly的标记,用于提醒开发者这部分接口仅能在FA模型下使用。因此在切换到Stage模型时,需要将应用中用到的FAModelOnly接口替换成Stage模型下对应的接口。下面是startAbility的接口切换示例,全量接口列表请查看后续章节:

api-switch-overview

startAbility接口由FA模型切换到Stage模型的示例: 开发前请熟悉鸿蒙开发指导文档 :[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对象的成员,在非Ability对象内部调用需要
            // 将Context对象传递过去
            let wantInfo: Want = {
              deviceId: '', // deviceId为空表示本设备
              bundleName: 'com.samples.stagemodelabilitydevelop',
              moduleName: 'entry', // moduleName非必选
              abilityName: 'FuncAbilityA',
              parameters: { // 自定义信息
                info: '来自EntryAbility Page_UIAbilityComponentsInteractive页面'
              },
            };
            // context为调用方UIAbility的UIAbilityContext
            this.context.startAbility(wantInfo).then(() = > {
              hilog.info(DOMAIN_NUMBER, TAG, 'startAbility success.');
            }).catch((error: BusinessError) = > {
              hilog.error(DOMAIN_NUMBER, TAG, 'startAbility failed.');
            });
          })
        }
        //...
      }
      //...
    }
    //...
  }
}

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • API
    API
    +关注

    关注

    2

    文章

    1470

    浏览量

    61725
  • 框架
    +关注

    关注

    0

    文章

    397

    浏览量

    17388
  • 鸿蒙
    +关注

    关注

    57

    文章

    2301

    浏览量

    42667
收藏 人收藏

    评论

    相关推荐

    鸿蒙服务API集全新呈现-开发更清晰高效

    鸿蒙服务API集全新呈现,开发更清晰高效,具体见如下截图,深黑色部分即本阶段公布支持的元服务API
    发表于 07-11 10:23

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

    1、鸿蒙Java API中的说明中aafwk是什么概念?什么文档的缩写?用途是什么?如ohos.aafwk.ability2、和ohos.accessibility.ability这一
    发表于 05-13 10:06

    OpenHarmony 应用开发SDK、API 与基础工具

    一、整体说明 ArkTS 语言是鸿蒙系统主推的应用开发语言。因此鸿蒙系统提供给开发者的 API 绝大部分也是 ArkTS 语言的。
    发表于 09-19 15:45

    windows api大全

    Win32 API是从事Windows应用程序开发所必备的。 首先对Win32 API函数做完整的概述;然后收录五大类函数:
    发表于 10-14 11:48 133次下载
    windows <b class='flag-5'>api</b>大全

    如何搭建API程序_框架api接口规范

    基于互联网的应用正变得越来越普及,在这个过程中,有更多的站点将自身的资源开放给开发者来调用。对外提供的API 调用使得站点之间的内容关联性更强,同时这些开放的平台也为用户、开发者和中小网站带来了更大的价值。搭建
    发表于 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>接口规范

    基于Java的接口快速开发框架——magic-api

    magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定义Controller、Service、Da
    发表于 07-19 11:42 852次阅读
    基于Java的接口快速<b class='flag-5'>开发</b><b class='flag-5'>框架</b>——magic-<b class='flag-5'>api</b>

    API测试框架Grillon概述

    API测试框架Grillon概述
    的头像 发表于 09-08 10:22 1972次阅读

    鸿蒙应用模型:【Ability Kit】简介

    Ability Kit程序框架服务)提供了应用程序开发
    的头像 发表于 05-29 14:41 534次阅读
    <b class='flag-5'>鸿蒙</b>应用模型:【<b class='flag-5'>Ability</b> <b class='flag-5'>Kit</b>】简介

    鸿蒙Ability Kit程序框架服务)【Ability内页面间的跳转】

    基于Stage模型下的Ability开发,实现Ability内页面间的跳转和数据传递。
    的头像 发表于 06-03 20:43 240次阅读
    <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'>Ability</b>内页面间的跳转】

    鸿蒙Ability Kit程序框架服务)【Ability与ServiceExtensionAbility通信】

    本示例展示通过[IDL的方式]和 [@ohos.rpc] 等接口实现了Ability与ServiceExtensionAbility之间的通信。
    的头像 发表于 06-05 09:28 415次阅读
    <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'>Ability</b>与ServiceExtensionAbility通信】

    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型概述

    本文介绍如何将一个FA模型开发的声明式范式应用切换到Stage模型
    的头像 发表于 06-26 14:40 296次阅读
    <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>:FA模型<b class='flag-5'>切换</b>Stage模型<b class='flag-5'>概述</b>

    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型指导 app和deviceConfig的切换

    为了便于开发者维护应用级别的属性配置,Stage模型将config.json中的app和deviceConfig标签提取到了app.json5中进行配置,并对部分标签名称进行了修改,具体差异见下表。
    的头像 发表于 06-27 10:01 299次阅读
    <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>:FA模型<b class='flag-5'>切换</b>Stage模型指导 app和deviceConfig的<b class='flag-5'>切换</b>

    鸿蒙开发Ability Kit程序框架服务:FA模型切换Stage模型指导 module的切换

    从FA模型切换到Stage模型时,开发者需要将config.json文件module标签下的配置迁移到module.json5配置文件module标签下,具体差异见下列表格。
    的头像 发表于 06-27 14:16 366次阅读
    <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>:FA模型<b class='flag-5'>切换</b>Stage模型指导 module的<b class='flag-5'>切换</b>

    鸿蒙开发Ability Kit程序框架服务:PageAbility切换 组件切换

    FA模型中PageAbility对应Stage模型中的UIAbility,PageAbility切换为UIAbility的方法如下。
    的头像 发表于 06-28 11:38 305次阅读
    <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>:PageAbility<b class='flag-5'>切换</b> 组件<b class='flag-5'>切换</b>

    鸿蒙开发Ability Kit程序框架服务:ServiceAbility切换 组件切换

    FA模型中的ServiceAbility对应Stage模型中的ServiceExtensionAbility。Stage模型下的ServiceExtensionAbility为系统API,只有系统
    的头像 发表于 06-28 10:24 259次阅读
    <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>:ServiceAbility<b class='flag-5'>切换</b> 组件<b class='flag-5'>切换</b>