创建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 点击或者复制转到。 |
通过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文章
8593浏览量
151123 -
鸿蒙
+关注
关注
57文章
2350浏览量
42842
发布评论请先 登录
相关推荐
鸿蒙Ability开发-Stage模型下Ability的创建和使用
);
hilog.info(ENTRY_ABILITY_DOMAIN, TAG, \'%{public}s\', \'Ability onBackground\');
}
}
本文内容是鸿蒙开发中
发表于 01-08 15:34
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次下载
使用 Taro 开发鸿蒙原生应用 —— 快速上手,鸿蒙应用开发指南
随着鸿蒙系统的不断完善,许多应用厂商都希望将自己的应用移植到鸿蒙平台上。最近,Taro 发布了 v4.0.0-beta.x 版本,支持使用 Taro 快速开发鸿蒙原生应用,也可将现有的
鸿蒙开发:【PageAbility的生命周期】
PageAbility生命周期是PageAbility被调度到INACTIVE、ACTIVE、BACKGROUND等各个状态的统称。PageAbility生命周期流转及状态说明见如下图1、表1所示。
鸿蒙开发:启动本地PageAbility
PageAbility相关的能力通过featureAbility提供,启动本地Ability通过featureAbility中的startAbility接口实现。
鸿蒙开发:启动指定页面
当PageAbility的启动模式设置为单例时(具体设置方法和典型场景示例见[PageAbility的启动模式],缺省情况下是单实例模式),若PageAbility已被拉起,再次启动PageA
鸿蒙开发Ability Kit程序框架服务:PageAbility切换 组件切换
FA模型中PageAbility对应Stage模型中的UIAbility,PageAbility切换为UIAbility的方法如下。
评论