UIAbility コンポーネントの基本的な使用法
UIAbility コンポーネントの基本的な使用法には、UIAbility の起動ページの指定と、UIAbility のコンテキスト UIAbilityContext の取得が含まれます。
1. 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) {
// Main window is created, set main page for this ability
windowStage.loadContent('pages/Index', (err, data) => {
// ...
});
}
// ...
}
注: DevEco Studio で作成された UIAbility では、UIAbility インスタンスはデフォルトでインデックス ページをロードし、必要に応じてインデックス ページのパスを必要なページ パスに置き換えます。
2. UIAbility のコンテキスト情報を取得する
UIAbility クラスは、UIAbilityContext クラスのインスタンスである独自のコンテキスト情報を持ち、UIAbilityContext クラスには、abilityInfo や currentHapModuleInfo などの属性があります。UIAbilityContext を通じて、パッケージ コード パス、バンドル名、アビリティ名、アプリケーションに必要な環境ステータスなどの UIAbility 関連の構成情報や、UIAbility インスタンスを操作するためのメソッド (startAbility()、connectServiceExtensionAbility() など) を取得できます。 、terminateSelf) ()wait)。
UIAbility では、UIAbility インスタンスのコンテキスト情報を this.context を通じて取得できます。
import UIAbility from '@ohos.app.ability.UIAbility';
export default class EntryAbility extends UIAbility {
onCreate(want, launchParam) {
// 获取UIAbility实例的上下文
let context = this.context;
// ...
}
}
ページ内の UIAbility インスタンスのコンテキスト情報の取得には、依存リソース コンテキスト モジュールのインポートとコンポーネント内のコンテキスト変数の定義が含まれます。
import common from '@ohos.app.ability.common';
@Entry
@Component
struct Index {
private context = getContext(this) as common.UIAbilityContext;
startAbilityTest() {
let want = {
// Want参数信息
};
this.context.startAbility(want);
}
// 页面展示
build() {
// ...
}
}
依存リソース コンテキスト モジュールをインポートした後、UIAbilityContext を使用する前に変数を定義することもできます。
import common from '@ohos.app.ability.common';
@Entry
@Component
struct Index {
startAbilityTest() {
let context = getContext(this) as common.UIAbilityContext;
let want = {
// Want参数信息
};
context.startAbility(want);
}
// 页面展示
build() {
// ...
}
}