harmony 鸿蒙Connecting to a ServiceExtensionAbility from the FA Model
Connecting to a ServiceExtensionAbility from the FA Model
This topic describes how the three application components of the FA model connect to the ServiceExtensionAbility component of the stage model.
PageAbility Accessing a ServiceExtensionAbility
A PageAbility accesses a ServiceExtensionAbility in the same way as it accesses a ServiceAbility.
import featureAbility from '@ohos.ability.featureAbility';
import common from '@ohos.app.ability.common';
import Want from '@ohos.app.ability.Want';
import { BusinessError } from '@ohos.base';
import hilog from '@ohos.hilog';
const TAG: string = 'PageInterflowFaAndStage';
const domain: number = 0xFF00;
@Entry
@Component
struct PageInterflowFaAndStage {
build() {
Column() {
// ...
List({ initialIndex: 0 }) {
ListItem() {
Row() {
// ...
}
.onClick(() => {
let want: Want = {
bundleName: 'ohos.samples.etsclock',
abilityName: 'MainAbility'
};
featureAbility.startAbility({ want }).then((code) => {
hilog.info(domain, TAG, `Ability verify code: ${JSON.stringify(code)}.`);
}).catch((error: BusinessError) => {
hilog.error(domain, TAG, `Ability failed, error msg: ${JSON.stringify(error)}.`);
});
let serviceWant: Want = {
bundleName: 'com.samples.stagemodelabilityinteraction',
abilityName: 'ServiceExtAbility'
};
let faConnect: common.ConnectOptions = {
onConnect: (elementName, proxy) => {
hilog.info(domain, TAG, `FaConnection onConnect called.`);
},
onDisconnect: (elementName) => {
hilog.info(domain, TAG, `FaConnection onDisconnect called.`);
},
onFailed: (code) => {
hilog.error(domain, TAG, `FaConnection onFailed code is: ${code}`);
}
};
let connectionId = featureAbility.connectAbility(serviceWant, faConnect);
})
}
// ...
}
// ...
}
// ...
}
}
ServiceAbility or DataAbility Accessing a ServiceExtensionAbility
A ServiceAbility or DataAbility accesses a ServiceExtensionAbility in the same way as it accesses a ServiceAbility.
import type common from '@ohos.app.ability.common';
import particleAbility from '@ohos.ability.particleAbility';
import type Want from '@ohos.app.ability.Want';
import type { BusinessError } from '@ohos.base';
import hilog from '@ohos.hilog';
const TAG: string = '[Sample_FAModelAbilityDevelop]';
const domain: number = 0xFF00;
class ServiceAbilityStartUiAbility {
onStart(): void {
// Start the UIAbility.
let want: Want = {
bundleName: 'ohos.samples.etsclock',
abilityName: 'MainAbility'
};
particleAbility.startAbility({ want }).then(() => {
hilog.info(domain, TAG, `ServiceAbilityStartUIAbility Start Ability successfully.`);
}).catch((error: BusinessError) => {
hilog.error(domain, TAG, `ServiceAbilityStartUIAbility Ability failed: ${JSON.stringify(error)}.`);
});
// Access the ServiceExtensionAbility.
let serviceWant: Want = {
bundleName: 'com.samples.stagemodelabilityinteraction',
abilityName: 'ServiceExtAbility'
};
let faConnect: common.ConnectOptions = {
onConnect: (elementName, proxy) => {
hilog.info(domain, TAG, `FaConnection onConnect called.`);
},
onDisconnect: (elementName) => {
hilog.info(domain, TAG, `FaConnection onDisconnect called.`);
},
onFailed: (code) => {
hilog.error(domain, TAG, `FaConnection onFailed code is: ${code}.`);
}
};
let connectionId = particleAbility.connectAbility(serviceWant, faConnect);
hilog.info(domain, TAG, `ServiceAbilityStartUIAbility ServiceAbility onStart.`);
}
};
export default new ServiceAbilityStartUiAbility();
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Obtaining Reasons for Abnormal Application Exits
harmony 鸿蒙UIAbility Backup and Restore
harmony 鸿蒙Using Explicit Want to Start an Application Component
harmony 鸿蒙Introduction to Ability Kit
harmony 鸿蒙AbilityStage Component Container
harmony 鸿蒙Accessing a DataAbility
harmony 鸿蒙Accessing a DataShareExtensionAbility from the FA Model
harmony 鸿蒙Common action and entities Values (Not Recommended)
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦