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

    文章

    1437

    浏览量

    61233
  • 框架
    +关注

    关注

    0

    文章

    378

    浏览量

    17155
  • 鸿蒙
    +关注

    关注

    55

    文章

    2103

    浏览量

    42272
收藏 人收藏

    评论

    相关推荐

    请问有PSOC的输入输出切换API吗?

    如题,请问有PSOC的输入输出切换API吗?
    发表于 02-21 07:58

    OpenHarmony开发Ability架构

    管理,从而实现对用户程序的调度。Ability框架API 8及更早版本使用FA模型。FA模型中Ability分为PageAbility、S
    发表于 05-12 15:12

    鸿蒙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>接口规范

    API Arts 全探秘 | 华为云新一代设计管理平台,功能强大!

    API设计不一致?API没地方归档?云服务开发项目合作低效?...... ? 华为云为广大开发者带来最新
    的头像 发表于 03-10 18:40 371次阅读

    API技巧集(三)

    --FlashWindow。 使用API函数FlashWindow可以闪烁显示指定窗口,让窗口在活动与非活动的状态之间切换,它有两个参数:hwnd和bInvert,头文件为“winuser.h”。其中,参数hwnd为要闪烁的窗口句柄,参数bInvert是一个bool变量,
    的头像 发表于 05-23 11:10 324次阅读

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

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

    API Arts 全探秘 | 华为云新一代设计管理平台,功能强大!

    API 设计不一致?API 没地方归档?云服务开发项目合作低效?...... ? 华为云为广大开发者带来最新
    的头像 发表于 09-03 00:36 256次阅读
    <b class='flag-5'>API</b> Arts 全探秘 | 华为云新一代设计管理平台,功能强大!

    API测试框架Grillon概述

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

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

    本文介绍如何将一个FA模型开发的声明式范式应用切换到Stage模型
    的头像 发表于 06-26 14:40 102次阅读
    <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模型指导 module的切换

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