1. UIAbility 的添加 和 设置启动(相当于微信里的微信小程序,从最近任务打开,可以切换是聊天还是操作小程序)

14.4设置主启动Ability

"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
]
14.4 UIAbility 组件的生命周期





import { AbilityConstant, UIAbility, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { window } from '@kit.ArkUI';
export default class ApplicationAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
}
onDestroy(): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
}
onWindowStageCreate(windowStage: window.WindowStage): void {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
windowStage.loadContent('pages/Index', (err) => {
if (err.code) {
hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? '');
return;
}
hilog.info(0x0000, 'testTag', 'Succeeded in loading the content.');
});
}
onWindowStageDestroy(): void {
// Main window is destroyed, release UI related resources
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
}
onForeground(): void {
// Ability has brought to foreground
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
}
onBackground(): void {
// Ability has back to background
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
}
}
14.3配置-启动页配置

14.4 同模块唤醒Ability
context = getContext(this) as common.UIAbilityContext
// 1. 准备 want (参数信息)
let wantInfo: Want = {
deviceId: '', // 空表示本设备
bundleName: 'com.example.part4demo', // AppScope/app.json 确认
moduleName: 'entry', // 模块名
abilityName: 'TwoAbility', // src/main/module.json5
parameters: {
info: '来自entryAbility'
}
}
// 2. 利用context startAbility 调起 UIAbility
// 返回一个promise对象
this.context.startAbility(wantInfo)
.then(() => {
console.log('startAbility 成功')
})
.catch((error: BusinessError) => {
console.log('启动Ability 失败', error)
})
14.5 不同模块唤醒Ability
context = getContext(this) as common.UIAbilityContext
// 1. 准备 want (参数信息)
let wantInfo: Want = {
deviceId: '', // 空表示本设备
bundleName: 'com.example.part4demo', // AppScope/app.json 确认
moduleName: 'TestModule', // 模块名
abilityName: 'TestModuleAbility', // src/main/module.json5
parameters: {
info: '来自entryAbility'
}
}
// 2. 利用context startAbility 调起 UIAbility
// 返回一个promise对象
this.context.startAbility(wantInfo)
.then(() => {
console.log('startAbility 成功')
})
.catch((error: BusinessError) => {
console.log('启动Ability 失败', error)
})