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

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

3天内不再提示

鸿蒙开发:创建PageAbility

jf_46214456 来源:jf_46214456 作者:jf_46214456 2024-06-18 09:36 次阅读

创建PageAbility

通过DevEco Studio开发平台创建PageAbility时,DevEco Studio会在app.js/app.ets中默认生成onCreate()和onDestroy()方法,其他方法需要开发者自行实现。接口说明参见前述章节,创建PageAbility示例如下:

import featureAbility from '@ohos.ability.featureAbility';
import hilog from '@ohos.hilog';

const TAG: string = 'MainAbility';
const domain: number = 0xFF00;

class MainAbility {
  onCreate() {
    // 获取context并调用相关方法
    let context = featureAbility.getContext();
    context.getBundleName((data, bundleName) = > {
      hilog.info(domain, TAG, 'ability bundleName:' ,bundleName);
    });
    hilog.info(domain, TAG, 'Application onCreate');
  }

  onDestroy() {
    hilog.info(domain, TAG, 'Application onDestroy');
  }

  onShow(): void {
    hilog.info(domain, TAG, 'Application onShow');
  }

  onHide(): void {
    hilog.info(domain, TAG, 'Application onHide');
  }

  onActive(): void {
    hilog.info(domain, TAG, 'Application onActive');
  }

  onInactive(): void {
    hilog.info(domain, TAG, 'Application onInactive');
  }

  onNewWant() {
    hilog.info(domain, TAG, 'Application onNewWant');
  }
}

export default new MainAbility();

PageAbility创建成功后,其abilities相关的配置项在config.json中体现,一个名字为EntryAbility的config.json配置文件示例如下:

{
  ...
  "module": {
    ...
    "abilities": [
      {
        "skills": [
          {
            "entities": [
              "entity.system.home"
            ],
            "actions": [
              "action.system.home"
            ]
          }
        ],
        "orientation": "unspecified",
        "formsEnabled": false,
        "name": ".MainAbility",
        "srcLanguage": "ets",
        "srcPath": "MainAbility",
        "icon": "$media:icon",
        "description": "$string:MainAbility_desc",
        "label": "$string:MainAbility_label",
        "type": "page",
        "visible": true,
        "launchType": "singleton"
      },
      ...
    ]
    ...
  }
}

FA模型中,可以通过featureAbility的getContext接口获取应用上下文,进而使用上下文提供的能力。

表1 featureAbility接口说明

接口名接口描述
getContext()获取应用上下文。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

新文档.png

通过getContext获取应用上下文并获取分布式目录的示例如下:

import featureAbility from '@ohos.ability.featureAbility';
import fs from '@ohos.file.fs';
import promptAction from '@ohos.promptAction';
import hilog from '@ohos.hilog';

const TAG: string = 'PagePageAbilityFirst';
const domain: number = 0xFF00;
(async (): Promise< void > = > {
  let dir: string;
  try {
    hilog.info(domain, TAG, 'Begin to getOrCreateDistributedDir');
    dir = await featureAbility.getContext().getOrCreateDistributedDir();
    promptAction.showToast({
      message: dir
    });
    hilog.info(domain, TAG, 'distribute dir is ' + dir);
    let fd: number;
    let path = dir + '/a.txt';
    fd = fs.openSync(path, fs.OpenMode.READ_WRITE).fd;
    fs.close(fd);
  } catch (error) {
    hilog.error(domain, TAG, 'getOrCreateDistributedDir failed with : ' + error);
  }
})()

审核编辑 黄宇

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

    关注

    33

    文章

    7963

    浏览量

    149211
  • 鸿蒙
    +关注

    关注

    55

    文章

    2090

    浏览量

    42261
收藏 人收藏

    评论

    相关推荐

    鸿蒙Ability开发-Stage模型下Ability的创建和使用

    ); hilog.info(ENTRY_ABILITY_DOMAIN, TAG, \'%{public}s\', \'Ability onBackground\'); } } 本文内容是鸿蒙开发
    发表于 01-08 15:34

    鸿蒙应用开发入门资料合集

    1、鸿蒙应用开发入门资料一:鸿蒙系统的概述1.1 鸿蒙系统是一个什么样的系统,亮点在哪里 官网首页上一句话告诉了我们鸿蒙系统是一个什么样的系
    发表于 03-22 11:23

    HarmonyOS应用开发-PageAbility生命周期介

    调用onDestroy方法,开发者可以在该方法里做一些回收资源、清空缓存等应用退出前的准备工作。onCreate() :Ability第一次启动创建Ability时调用onCreate方法,开发者可以
    发表于 10-17 11:11

    HarmonyOS/OpenHarmony应用开发-PageAbility开发体验

    功能简介PageAbility是具备ArkUI实现的Ability,是开发者具体可见并可以交互的Ability实例。开发者通过IDE创建Ability时,IDE会自动
    发表于 12-08 11:03

    鸿蒙应用开发者使用的精美图表库控件

    该三方开源库从github fork过来,主要将底层接口调用的实现修改成鸿蒙接口的实现,将三方库鸿蒙化,供开发鸿蒙应用的开发者使用 Eaze
    发表于 04-01 10:31 1次下载

    中文编程鸿蒙Hi3861开发基础案例之-01创建新工程

    中文编程鸿蒙Hi3861开发创建新工程
    的头像 发表于 05-11 09:53 2153次阅读
    中文编程<b class='flag-5'>鸿蒙</b>Hi3861<b class='flag-5'>开发</b>基础案例之-01<b class='flag-5'>创建</b>新工程

    使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南

    随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro 发布了 v4.0.0-beta.x 版本,支持使用 Taro 快速开发鸿蒙原生应用,也可将现有的
    的头像 发表于 02-02 16:09 529次阅读
    使用 Taro <b class='flag-5'>开发</b><b class='flag-5'>鸿蒙</b>原生应用 —— 快速上手,<b class='flag-5'>鸿蒙</b>应用<b class='flag-5'>开发</b>指南

    鸿蒙开发:【PageAbility的生命周期】

    PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下图1、表1所示。
    的头像 发表于 06-17 10:05 409次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:【<b class='flag-5'>PageAbility</b>的生命周期】

    鸿蒙开发PageAbility的启动模式

    启动模式对应PageAbility被启动时的行为,支持单实例模式、多实例模式两种启动模式。
    的头像 发表于 06-17 14:35 118次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:<b class='flag-5'>PageAbility</b>的启动模式

    鸿蒙开发:启动本地PageAbility

    PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。
    的头像 发表于 06-18 09:29 103次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:启动本地<b class='flag-5'>PageAbility</b>

    鸿蒙开发:停止PageAbility

    停止PageAbility通过featureAbility中的terminateSelf接口实现。
    的头像 发表于 06-18 14:16 140次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:停止<b class='flag-5'>PageAbility</b>

    鸿蒙开发:启动远程PageAbility 仅对系统应用开放

    启动远程PageAbility同样通过featureAbility中的startAbility接口实现。
    的头像 发表于 06-19 09:34 121次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:启动远程<b class='flag-5'>PageAbility</b> 仅对系统应用开放

    鸿蒙开发:启动指定页面

    PageAbility的启动模式设置为单例时(具体设置方法和典型场景示例见[PageAbility的启动模式],缺省情况下是单实例模式),若PageAbility已被拉起,再次启动PageA
    的头像 发表于 06-19 09:29 136次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>:启动指定页面

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

    本小节介绍Stage模型的两种应用组件如何启动FA模型的PageAbility组件。
    的头像 发表于 06-26 09:50 104次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>Ability Kit程序框架服务:Stage模型启动FA模型<b class='flag-5'>PageAbility</b>

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

    FA模型中PageAbility对应Stage模型中的UIAbility,PageAbility切换为UIAbility的方法如下。
    的头像 发表于 06-28 11:38 122次阅读
    <b class='flag-5'>鸿蒙</b><b class='flag-5'>开发</b>Ability Kit程序框架服务:<b class='flag-5'>PageAbility</b>切换 组件切换