harmony 鸿蒙UIServiceProxy
UIServiceProxy
UIServiceProxy提供代理能力,可以从UIServiceExtension客户端发送数据到服务端。
说明:
- 本模块首批接口从API version 14开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
- 本模块接口仅可在Stage模型下使用。
- 本模块接口需要在主线程中使用,不要在Worker、TaskPool等子线程中使用。
导入模块
import { common } from '@kit.AbilityKit';
UIServiceProxy.sendData
sendData(data: Record<string, Object>): void
给UIServiceExtension服务端发送数据。
说明:
组件启动规则详见:组件启动规则(Stage模型)。
原子化服务API:从 API version 14开始,该接口支持在原子化服务中使用。
系统能力:SystemCapability.Ability.AbilityRuntime.Core
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
data | Record<string, Object> | 是 | 待发送给UIServiceExtension服务端的数据。 |
错误码:
错误码ID | 错误信息 |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
16000050 | Internal error. |
示例:
import { common, Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';
const TAG: string = '[Extension] ';
@Entry
@Component
struct UIServiceExtensionAbility {
comProxy: common.UIServiceProxy|null = null;
dataCallBack: common.UIServiceExtensionConnectCallback = {
onData: (data: Record<string, Object>) => {
console.info(`${TAG} dataCallBack received data: ${JSON.stringify(data)}.`);
},
onDisconnect: () => {
console.info(`${TAG} dataCallBack onDisconnect.`);
this.comProxy = null;
}
}
build() {
Scroll() {
Column() {
// 创建一个连接UIServiceExtension的按钮
Button('connectUIServiceExtensionAbility', { type: ButtonType.Capsule, stateEffect: true })
.margin({
top: 5,
left: 10,
right: 10,
bottom: 5
})
.alignRules({
center: { anchor: '__container__', align: VerticalAlign.Center },
middle: { anchor: '__container__', align: HorizontalAlign.Center }
})
.onClick(() => {
this.myConnectUIServiceExtensionAbility()
});
}
.width('100%')
}
.height('100%')
}
// 自定义连接UIServiceExtension的函数
myConnectUIServiceExtensionAbility() {
let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
let startWant: Want = {
deviceId: '',
bundleName: 'com.acts.myapplication',
abilityName: 'UiServiceExtensionAbility'
};
try {
// 连接UIServiceExtension
context.connectUIServiceExtensionAbility(startWant, this.dataCallBack)
.then((proxy: common.UIServiceProxy) => {
console.info(TAG + `try to connectUIServiceExtensionAbility ${proxy}}`);
this.comProxy = proxy;
let formData: Record<string, string> = {
'PATH': '/tmp/aaa.jpg'
};
try {
console.info(`${TAG} sendData.`);
// 给UIServiceExtension发送数据
this.comProxy.sendData(formData);
} catch (err) {
let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`${TAG} sendData failed, code is ${code}, message is ${message}.`);
}
}).catch((err: Error) => {
let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`${TAG} connectUIServiceExtensionAbility failed, code is ${code}, message is ${message}.`);
});
} catch (err) {
let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.error(`${TAG} connectUIServiceExtensionAbility failed, code is ${code}, message is ${message}.`);
}
}
}
你可能感兴趣的鸿蒙文章
harmony 鸿蒙OH_NativeBundle_ApplicationInfo
harmony 鸿蒙OH_NativeBundle_ElementName
harmony 鸿蒙ability_base_common.h
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦