0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙開發(fā):創(chuàng)建PageAbility

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-06-18 09:36 ? 次閱讀

創(chuàng)建PageAbility

通過DevEco Studio開發(fā)平臺創(chuàng)建PageAbility時,DevEco Studio會在app.js/app.ets中默認生成onCreate()和onDestroy()方法,其他方法需要開發(fā)者自行實現(xiàn)。接口說明參見前述章節(jié),創(chuàng)建PageAbility示例如下:

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

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

class MainAbility {
  onCreate() {
    // 獲取context并調(diào)用相關(guān)方法
    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創(chuàng)建成功后,其abilities相關(guān)的配置項在config.json中體現(xiàn),一個名字為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接口獲取應(yīng)用上下文,進而使用上下文提供的能力。

表1 featureAbility接口說明

接口名接口描述
getContext()獲取應(yīng)用上下文。開發(fā)前請熟悉鴻蒙開發(fā)指導文檔:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復(fù)制轉(zhuǎn)到。

新文檔.png

通過getContext獲取應(yīng)用上下文并獲取分布式目錄的示例如下:

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);
  }
})()

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    8257

    瀏覽量

    149971
  • 鴻蒙
    +關(guān)注

    關(guān)注

    56

    文章

    2267

    瀏覽量

    42492
收藏 人收藏

    評論

    相關(guān)推薦

    鴻蒙Ability開發(fā)-Stage模型下Ability的創(chuàng)建和使用

    ); hilog.info(ENTRY_ABILITY_DOMAIN, TAG, \'%{public}s\', \'Ability onBackground\'); } } 本文內(nèi)容是鴻蒙開發(fā)
    發(fā)表于 01-08 15:34

    HarmonyOS應(yīng)用開發(fā)-PageAbility生命周期介

    調(diào)用onDestroy方法,開發(fā)者可以在該方法里做一些回收資源、清空緩存等應(yīng)用退出前的準備工作。onCreate() :Ability第一次啟動創(chuàng)建Ability時調(diào)用onCreate方法,開發(fā)者可以
    發(fā)表于 10-17 11:11

    HarmonyOS/OpenHarmony應(yīng)用開發(fā)-PageAbility開發(fā)體驗

    功能簡介PageAbility是具備ArkUI實現(xiàn)的Ability,是開發(fā)者具體可見并可以交互的Ability實例。開發(fā)者通過IDE創(chuàng)建Ability時,IDE會自動
    發(fā)表于 12-08 11:03

    鴻蒙應(yīng)用開發(fā)者使用的精美圖表庫控件

    該三方開源庫從github fork過來,主要將底層接口調(diào)用的實現(xiàn)修改成鴻蒙接口的實現(xiàn),將三方庫鴻蒙化,供開發(fā)鴻蒙應(yīng)用的開發(fā)者使用 Eaze
    發(fā)表于 04-01 10:31 ?1次下載

    中文編程鴻蒙Hi3861開發(fā)基礎(chǔ)案例之-01創(chuàng)建新工程

    中文編程鴻蒙Hi3861開發(fā)創(chuàng)建新工程
    的頭像 發(fā)表于 05-11 09:53 ?2440次閱讀
    中文編程<b class='flag-5'>鴻蒙</b>Hi3861<b class='flag-5'>開發(fā)</b>基礎(chǔ)案例之-01<b class='flag-5'>創(chuàng)建</b>新工程

    使用 Taro 開發(fā)鴻蒙原生應(yīng)用 —— 快速上手,鴻蒙應(yīng)用開發(fā)指南

    隨著鴻蒙系統(tǒng)的不斷完善,許多應(yīng)用廠商都希望將自己的應(yīng)用移植到鴻蒙平臺上。最近,Taro 發(fā)布了 v4.0.0-beta.x 版本,支持使用 Taro 快速開發(fā)鴻蒙原生應(yīng)用,也可將現(xiàn)有的
    的頭像 發(fā)表于 02-02 16:09 ?694次閱讀
    使用 Taro <b class='flag-5'>開發(fā)</b><b class='flag-5'>鴻蒙</b>原生應(yīng)用 —— 快速上手,<b class='flag-5'>鴻蒙</b>應(yīng)用<b class='flag-5'>開發(fā)</b>指南

    鴻蒙開發(fā):【PageAbility組件概述+配置】

    PageAbility是包含UI、提供展示UI能力的應(yīng)用組件,主要用于與用戶交互。
    的頭像 發(fā)表于 06-17 18:05 ?415次閱讀

    鴻蒙開發(fā):【PageAbility的生命周期】

    PageAbility生命周期是PageAbility被調(diào)度到INACTIVE、ACTIVE、BACKGROUND等各個狀態(tài)的統(tǒng)稱。PageAbility生命周期流轉(zhuǎn)及狀態(tài)說明見如下圖1、表1所示。
    的頭像 發(fā)表于 06-17 10:05 ?575次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:【<b class='flag-5'>PageAbility</b>的生命周期】

    鴻蒙開發(fā)PageAbility的啟動模式

    啟動模式對應(yīng)PageAbility被啟動時的行為,支持單實例模式、多實例模式兩種啟動模式。
    的頭像 發(fā)表于 06-17 14:35 ?239次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:<b class='flag-5'>PageAbility</b>的啟動模式

    鴻蒙開發(fā):啟動本地PageAbility

    PageAbility相關(guān)的能力通過featureAbility提供,啟動本地Ability通過featureAbility中的startAbility接口實現(xiàn)。
    的頭像 發(fā)表于 06-18 09:29 ?215次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:啟動本地<b class='flag-5'>PageAbility</b>

    鴻蒙開發(fā):停止PageAbility

    停止PageAbility通過featureAbility中的terminateSelf接口實現(xiàn)。
    的頭像 發(fā)表于 06-18 14:16 ?230次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:停止<b class='flag-5'>PageAbility</b>

    鴻蒙開發(fā):啟動遠程PageAbility 僅對系統(tǒng)應(yīng)用開放

    啟動遠程PageAbility同樣通過featureAbility中的startAbility接口實現(xiàn)。
    的頭像 發(fā)表于 06-19 09:34 ?180次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:啟動遠程<b class='flag-5'>PageAbility</b> 僅對系統(tǒng)應(yīng)用開放

    鴻蒙開發(fā):啟動指定頁面

    PageAbility的啟動模式設(shè)置為單例時(具體設(shè)置方法和典型場景示例見[PageAbility的啟動模式],缺省情況下是單實例模式),若PageAbility已被拉起,再次啟動PageA
    的頭像 發(fā)表于 06-19 09:29 ?253次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>:啟動指定頁面

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):Stage模型啟動FA模型PageAbility

    本小節(jié)介紹Stage模型的兩種應(yīng)用組件如何啟動FA模型的PageAbility組件。
    的頭像 發(fā)表于 06-26 09:50 ?261次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>Ability Kit程序框架服務(wù):Stage模型啟動FA模型<b class='flag-5'>PageAbility</b>

    鴻蒙開發(fā)Ability Kit程序框架服務(wù):PageAbility切換 組件切換

    FA模型中PageAbility對應(yīng)Stage模型中的UIAbility,PageAbility切換為UIAbility的方法如下。
    的頭像 發(fā)表于 06-28 11:38 ?248次閱讀
    <b class='flag-5'>鴻蒙</b><b class='flag-5'>開發(fā)</b>Ability Kit程序框架服務(wù):<b class='flag-5'>PageAbility</b>切換 組件切換