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

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

3天内不再提示

鸿蒙Ability Kit(程序框架服务)【UIAbility组件基本用法】

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-06 11:02 次阅读

UIAbility组件基本用法

UIAbility组件的基本用法包括:指定UIAbility的启动页面以及获取UIAbility的上下文[UIAbilityContext]。

指定UIAbility的启动页面

应用中的UIAbility在启动过程中,需要指定启动页面,否则应用启动后会因为没有默认加载页面而导致白屏。可以在UIAbility的onWindowStageCreate()生命周期回调中,通过[WindowStage]对象的loadContent()方法设置启动页面。

import UIAbility from '@ohos.app.ability.UIAbility';
import window from '@ohos.window';

export default class EntryAbility extends UIAbility {
  onWindowStageCreate(windowStage: window.WindowStage): void {
    // Main window is created, set main page for this ability
    windowStage.loadContent('pages/Index', (err, data) = > {
      // ...
    });
  }
  // ...
}

说明: 在DevEco Studio中创建的UIAbility中,该UIAbility实例默认会加载Index页面,根据需要将Index页面路径替换为需要的页面路径即可。 开发前请熟悉鸿蒙开发指导文档 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

新文档.png

获取UIAbility的上下文信息

UIAbility类拥有自身的上下文信息,该信息为[UIAbilityContext]类的实例,[UIAbilityContext]类拥有abilityInfo、currentHapModuleInfo等属性。通过UIAbilityContext可以获取UIAbility的相关配置信息,如包代码路径、Bundle名称、Ability名称和应用程序需要的环境状态等属性信息,以及可以获取操作UIAbility实例的方法(如startAbility()connectServiceExtensionAbility()terminateSelf()等)。 如果需要在页面中获得当前Ability的Context,可调用[getContext]接口获取当前页面关联的UIAbilityContext或ExtensionContext。

  • 在UIAbility中可以通过this.context获取UIAbility实例的上下文信息。

    import UIAbility from '@ohos.app.ability.UIAbility';
    import AbilityConstant from '@ohos.app.ability.AbilityConstant';
    import Want from '@ohos.app.ability.Want';
    
    export default class EntryAbility extends UIAbility {
      onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
        // 获取UIAbility实例的上下文
        let context = this.context;
        // ...
      }
    }
    
  • 在页面中获取UIAbility实例的上下文信息,包括导入依赖资源context模块和在组件中定义一个context变量两个部分。

    import common from '@ohos.app.ability.common';
    import Want from '@ohos.app.ability.Want';
    
    @Entry
    @Component
    struct Page_EventHub {
      private context = getContext(this) as common.UIAbilityContext;
    
      startAbilityTest() : void {
        let want: Want = {
          // Want参数信息
        };
        this.context.startAbility(want);
      }
    
      // 页面展示
      build() {
        // ...
      }
    }
    

    也可以在导入依赖资源context模块后,在具体使用[UIAbilityContext]前进行变量定义。

    import common from '@ohos.app.ability.common';
    import Want from '@ohos.app.ability.Want';
    
    @Entry
    @Component
    struct Page_UIAbilityComponentsBasicUsage {
    
      startAbilityTest(): void {
        let context = getContext(this) as common.UIAbilityContext;
        let want: Want = {
          // Want参数信息
        };
        context.startAbility(want);
      }
    
      // 页面展示
      build() {
        // ...
      }
    }
    

审核编辑 黄宇

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

    关注

    0

    文章

    403

    浏览量

    17479
  • 组件
    +关注

    关注

    1

    文章

    512

    浏览量

    17821
  • 鸿蒙
    +关注

    关注

    57

    文章

    2347

    浏览量

    42827
收藏 人收藏

    评论

    相关推荐

    鸿蒙Ability Kit程序框架服务)【UIAbility组件生命周期】

    当用户打开、切换和返回到对应应用时,应用中的UIAbility实例会在其生命周期的不同状态之间转换。UIAbility类提供了一系列回调,通过这些回调可以知道当前UIAbility实例的某个状态发生改变,会经过
    的头像 发表于 05-30 21:51 1517次阅读
    <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'>UIAbility</b><b class='flag-5'>组件</b>生命周期】

    鸿蒙Ability Kit程序框架服务)【UIExtensionAbility】

    [UIExtensionAbility]是UI类型的ExtensionAbility组件,需要与[UIExtensionComponent]一起配合使用,开发者可以在UIAbility的页面中通过
    的头像 发表于 06-05 09:19 1371次阅读
    <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>)【UIExtensionAbility】

    鸿蒙开发-应用程序框架UIAbility的使用

    UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个
    发表于 01-17 16:36

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

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

    鸿蒙Ability Kit程序框架服务)【UIAbility组件概述】

    UIAbility组件是一种包含UI的应用组件,主要用于和用户交互。
    的头像 发表于 05-30 20:17 440次阅读
    <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'>UIAbility</b><b class='flag-5'>组件</b>概述】

    鸿蒙Ability Kit程序框架服务)【UIAbility组件生命周期】实例

    本文档主要描述了应用运行过程中UIAbility和自定义组件的生命周期。对于UIAbility,描述了Create、Foreground、Background、Destroy四种生命周期。对于页面
    的头像 发表于 05-31 15:03 1116次阅读
    <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'>UIAbility</b><b class='flag-5'>组件</b>生命周期】实例

    鸿蒙Ability Kit程序框架服务)【UIAbility组件启动模式】

    UIAbility的启动模式是指UIAbility实例在启动时的不同呈现状态。针对不同的业务场景,系统提供了三种启动模式:
    的头像 发表于 06-06 11:05 830次阅读
    <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'>UIAbility</b><b class='flag-5'>组件</b>启动模式】

    鸿蒙Ability Kit程序框架服务)【UIAbility组件与UI的数据同步】

    基于当前的应用模型,可以通过以下几种方式来实现UIAbility组件与UI之间的数据同步。
    的头像 发表于 06-03 10:26 471次阅读
    <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'>UIAbility</b><b class='flag-5'>组件</b>与UI的数据同步】

    鸿蒙Ability Kit程序框架服务)【UIAbility组件间交互(设备内)】

    UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时,会涉及到启动特定的UIAbility,该UIAbility可以是应用内的其他UIAbility,也可以是其他应用的
    的头像 发表于 06-03 09:53 651次阅读
    <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'>UIAbility</b><b class='flag-5'>组件</b>间交互(设备内)】

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

    基于Stage模型下的UIAbility开发,实现UIAbility内和UIAbility间页面的跳转。
    的头像 发表于 06-03 14:13 758次阅读
    <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'>UIAbility</b>内和<b class='flag-5'>UIAbility</b>间页面的跳转】

    鸿蒙Ability Kit程序框架服务)【ExtensionAbility组件

    ExtensionAbility组件是基于特定场景(例如服务卡片、输入法等)提供的应用组件,以便满足更多的使用场景。
    的头像 发表于 06-04 15:54 582次阅读
    <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>)【ExtensionAbility<b class='flag-5'>组件</b>】

    鸿蒙Ability Kit程序框架服务)【组件启动规则(Stage模型)】

    组件启动规则(Stage模型) 启动组件是指一切启动或连接应用组件的行为: 启动UIAbility、ServiceExtensionAbility、DataShareExtension
    的头像 发表于 06-10 18:47 915次阅读
    <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'>组件</b>启动规则(Stage模型)】

    鸿蒙开发Ability Kit程序框架服务:任务管理

    AbilityRecord:系统服务侧管理一个UIAbility实例的最小单元,对应一个应用侧的UIAbility组件实例。系统服务侧管理
    的头像 发表于 06-24 14:46 446次阅读
    <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>:任务管理

    鸿蒙开发Ability Kit程序框架服务:FA模型与Stage模型应用组件互通综述

    FA模型与Stage模型是两套不同的应用模型,他们拥有各自的组件。FA模型提供三种应用组件,分别是PageAbility、ServiceAbility和DataAbility。Stage模型提供了两种应用组件,分别是
    的头像 发表于 06-24 16:43 520次阅读
    <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模型与Stage模型应用<b class='flag-5'>组件</b>互通综述

    鸿蒙开发Ability Kit程序框架服务:FA模型启动Stage模型UIAbility

    本文介绍FA模型的三种应用组件如何启动Stage模型的UIAbility组件
    的头像 发表于 06-25 16:00 365次阅读
    <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模型启动Stage模型<b class='flag-5'>UIAbility</b>