harmony 鸿蒙UIServiceProxy
UIServiceProxy
UIServiceProxy functions as a proxy to send data from the UIServiceExtensionAbility client to the server.
NOTE
- The initial APIs of this module are supported since API version 14. Newly added APIs will be marked with a superscript to indicate their earliest API version.
- The APIs of this module can be used only in the stage model.
- The APIs of this module must be used in the main thread, but not in sub-threads such as Worker and TaskPool.
Modules to Import
import { common } from '@kit.AbilityKit';
UIServiceProxy.sendData
sendData(data: Record<string, Object>): void
Sends data to the UIServiceExtensionAbility server.
NOTE
For details about the startup rules for the components in the stage model, see Component Startup Rules (Stage Model).
Atomic service API: This API can be used in atomic services since API version 14.
System capability: SystemCapability.Ability.AbilityRuntime.Core
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
data | Record<string, Object> | Yes | Data to be sent to the UIServiceExtensionAbility server. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
16000050 | Internal error. |
Example
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.log(TAG + `dataCallBack received data: `, JSON.stringify(data));
},
onDisconnect: () => {
console.log(TAG + `dataCallBack onDisconnect`);
this.comProxy = null;
}
}
build() {
Scroll() {
Column() {
// Create a button for connecting to the UIServiceExtensionAbility.
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%')
}
// Customize a function for connecting to the UIServiceExtensionAbility.
myConnectUIServiceExtensionAbility() {
let context = this.getUIContext().getHostContext() as common.UIAbilityContext;
let startWant: Want = {
deviceId: '',
bundleName: 'com.acts.myapplication',
abilityName: 'UiServiceExtensionAbility'
};
try {
// Connect to the UIServiceExtensionAbility.
context.connectUIServiceExtensionAbility(startWant, this.dataCallBack)
.then((proxy: common.UIServiceProxy) => {
console.log(TAG + `try to connectUIServiceExtensionAbility ${proxy}}`);
this.comProxy = proxy;
let formData: Record<string,string> = {
'PATH': '/tmp/aaa.jpg'
};
try {
console.log(TAG + `sendData`);
// Send data to the UIServiceExtensionAbility.
this.comProxy.sendData(formData);
} catch (err) {
let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.log(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.log(TAG + `connectUIServiceExtensionAbility failed, code is ${code}, message is ${message}`);
});
} catch (err) {
let code = (err as BusinessError).code;
let message = (err as BusinessError).message;
console.log(TAG + `connectUIServiceExtensionAbility failed, code is ${code}, message is ${message}`);
}
}
}
你可能感兴趣的鸿蒙文章
harmony 鸿蒙AbilityAccessControl
harmony 鸿蒙OH_NativeBundle_ApplicationInfo
harmony 鸿蒙OH_NativeBundle_ElementName
0
赞
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦