harmony 鸿蒙Connecting to a ServiceAbility from the Stage Model
Connecting to a ServiceAbility from the Stage Model
This topic describes how the two application components of the stage model connect to the ServiceAbility component of the FA model.
UIAbility Accessing a ServiceAbility
A UIAbility accesses a ServiceAbility in the same way as it accesses a ServiceExtensionAbility.
import { common, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
const TAG: string = '[Page_StartFAModel]';
const DOMAIN_NUMBER: number = 0xFF00;
@Entry
@Component
struct Page_StartFAModel {
private context = this.getUIContext().getHostContext() as common.UIAbilityContext;
build() {
Column() {
// ...
List({ initialIndex: 0 }) {
// ...
ListItem() {
Row() {
// ...
}
.onClick(() => {
let want: Want = {
bundleName: 'com.samples.famodelabilitydevelop',
abilityName: 'com.samples.famodelabilitydevelop.ServiceAbility',
};
let options: common.ConnectOptions = {
onConnect: (elementName, proxy) => {
hilog.info(DOMAIN_NUMBER, TAG, `onConnect called.`);
this.getUIContext().getPromptAction().showToast({
message: 'ConnectFAServiceAbility'
});
},
onDisconnect: (elementName) => {
hilog.info(DOMAIN_NUMBER, TAG, `onDisconnect called.`);
},
onFailed: (code) => {
hilog.error(DOMAIN_NUMBER, TAG, `onFailed code is: ${code}.`);
}
};
let connectionId = this.context.connectServiceExtensionAbility(want, options);
hilog.info(DOMAIN_NUMBER, TAG, `connectionId is: ${JSON.stringify(connectionId)}.`);
})
}
// ...
}
// ...
}
// ...
}
}
ExtensionAbility Accessing a ServiceAbility
The following uses the ServiceExtensionAbility component as an example to describe how an ExtensionAbility accesses a ServiceAbility. A ServiceExtensionAbility accesses a ServiceAbility in the same way as it accesses another ServiceExtensionAbility.
import { common, Want } from '@kit.AbilityKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
const TAG: string = '[Page_StartFAModel]';
const DOMAIN_NUMBER: number = 0xFF00;
@Entry
@Component
struct Page_StartFAModel {
private context = this.getUIContext().getHostContext() as common.UIAbilityContext;
build() {
Column() {
// ...
List({ initialIndex: 0 }) {
// ...
ListItem() {
Row() {
// ...
}
.onClick(() => {
let want: Want = {
bundleName: 'com.samples.famodelabilitydevelop',
abilityName: 'com.samples.famodelabilitydevelop.ServiceAbility',
};
let options: common.ConnectOptions = {
onConnect: (elementName, proxy) => {
hilog.info(DOMAIN_NUMBER, TAG, `onConnect called.`);
this.getUIContext().getPromptAction().showToast({
message: 'ConnectFAServiceAbility'
});
},
onDisconnect: (elementName) => {
hilog.info(DOMAIN_NUMBER, TAG, `onDisconnect called.`);
},
onFailed: (code) => {
hilog.error(DOMAIN_NUMBER, TAG, `onFailed code is: ${code}.`);
}
};
let connectionId = this.context.connectServiceExtensionAbility(want, options);
hilog.info(DOMAIN_NUMBER, TAG, `connectionId is: ${JSON.stringify(connectionId)}.`);
})
}
// ...
}
// ...
}
// ...
}
}
你可能感兴趣的鸿蒙文章
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框自动聚焦