harmony 鸿蒙@ohos.pluginComponent (PluginComponentManager)
@ohos.pluginComponent (PluginComponentManager)
The PluginComponentManager module provides APIs for the PluginComponent user to request components and data and send component templates and data.
NOTE
- The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.
Modules to Import
import { pluginComponentManager } from '@kit.ArkUI';
PluginComponentTemplate
Describes the PluginComponent template parameters.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Name | Type | Mandatory | Description |
---|---|---|---|
source | string | Yes | Component template name. |
ability | string | Yes | Bundle name of the provider ability. |
pluginComponentManager
Implements a plugin component manager.
KVObject
type KVObject = { [key: string]: number|string|boolean|[]|KVObject }
Defines a key-value pair data structure that conforms to JSON format.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Name | Type | Mandatory | Description |
---|---|---|---|
[key: string] | number |string |boolean |[] |KVObject | Yes | Key-value pair: number: numeric value type. string: string value type. The value can be an empty string. boolean: boolean value type. []: empty array value. KVObject: nested KVObject value type. |
PushParameters
Defines the parameters required when using the PluginManager.Push API.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Name | Type | Mandatory | Description |
---|---|---|---|
want | Want | Yes | Ability information of the component user. |
name | string | Yes | Component name. |
data | KVObject | Yes | Component data value. |
extraData | KVObject | Yes | Additional data value. |
jsonPath | string | No | Path to the external.json file that stores the template path. |
RequestParameters
Defines the parameters required when using the PluginManager.Request API.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Name | Type | Mandatory | Description |
---|---|---|---|
want | Want | Yes | Ability information of the component provider. |
name | string | Yes | Name of the requested component. |
data | KVObject | Yes | Additional data. |
jsonPath | string | No | Path to the external.json file that stores the template path. Request communication is not triggered when jsonPath is not empty or not set. |
RequestCallbackParameters
Provides the result returned after the PluginManager.Request API is called.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Name | Type | Mandatory | Description |
---|---|---|---|
componentTemplate | PluginComponentTemplate | Yes | Component template. |
data | KVObject | Yes | Component data. |
extraData | KVObject | Yes | Additional data. |
RequestEventResult
Provides the result returned after the request listener is registered and the requested event is received.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Name | Type | Mandatory | Description |
---|---|---|---|
template | string | No | Component template. |
data | KVObject | No | Component data. |
extraData | KVObject | No | Additional data. |
OnPushEventCallback
type OnPushEventCallback = (source: Want, template: PluginComponentTemplate, data: KVObject, extraData: KVObject) => void
Registers the listener for the push event.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
source | Want | Yes | Information about the push request sender. |
template | PluginComponentTemplate | Yes | Name of the request component template for the push request sender. |
data | KVObject | Yes | Data. |
extraData | KVObject | Yes | Additional data. |
Example
import { pluginComponentManager, PluginComponentTemplate } from '@kit.ArkUI';
import { Want } from '@kit.AbilityKit';
function onPushListener(source: Want, template: PluginComponentTemplate, data: pluginComponentManager.KVObject, extraData: pluginComponentManager.KVObject) {
console.log("onPushListener template.source=" + template.source);
console.log("onPushListener source=" + JSON.stringify(source));
console.log("onPushListener template=" + JSON.stringify(template));
console.log("onPushListener data=" + JSON.stringify(data));
console.log("onPushListener extraData=" + JSON.stringify(extraData));
}
OnRequestEventCallback
type OnRequestEventCallback = (source: Want, name: string, data: KVObject) => RequestEventResult
Registers the listener for the request event.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
source | Want | Yes | Information about the request sender. |
name | string | Yes | Template name. |
data | KVObject | Yes | Additional data. |
Return value
Type | Description |
---|---|
RequestEventResult | Provides the result returned after the request listener is registered and the requested event is received. |
Example
import { pluginComponentManager } from '@kit.ArkUI';
import { Want } from '@kit.AbilityKit';
function onRequestListener(source: Want, name: string, data: pluginComponentManager.KVObject) {
console.error("onRequestListener");
console.log("onRequestListener source=" + JSON.stringify(source));
console.log("onRequestListener name=" + name);
console.log("onRequestListener data=" + JSON.stringify(data));
let RtnData: Record<string, string|pluginComponentManager.KVObject> = {
'template': "ets/pages/plugin.js",
'data': data,
}
return RtnData;
}
pluginComponentManager.push
push(param: PushParameters , callback: AsyncCallback<void>): void
Pushes the component and data to the component user.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Parameters |Name |Type |Mandatory|Description | |——–|———————————|—-|————| |param |PushParameters|Yes |Information about the component user.| |callback|AsyncCallback<void> |Yes |Asynchronous callback used to return the result.|
Example
import { pluginComponentManager } from '@kit.ArkUI';
pluginComponentManager.push(
{
want: {
bundleName: "com.example.provider",
abilityName: "com.example.provider.MainAbility",
},
name: "plugintemplate",
data: {
"key_1": "plugin component test",
"key_2": 34234,
},
extraData: {
"extra_str": "this is push event",
},
jsonPath: "",
},
(err, data) => {
console.log("push_callback: push ok!");
}
)
pluginComponentManager.request
request(param: RequestParameters, callback: AsyncCallback<RequestCallbackParameters>): void
Requests the component from the component provider.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
param | RequestParameters | Yes | Information about the component request. |
callback | AsyncCallback<RequestCallbackParameters> | Yes | Asynchronous callback used to return the requested data. |
Example
import { pluginComponentManager } from '@kit.ArkUI';
pluginComponentManager.request(
{
want: {
bundleName: "com.example.provider",
abilityName: "com.example.provider.MainAbility",
},
name: "plugintemplate",
data: {
"key_1": "plugin component test",
"key_2": 1111111,
},
jsonPath: "",
},
(err, data) => {
console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability);
console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source);
console.log("request_callback: data=" + JSON.stringify(data.data));
console.log("request_callback: extraData=" + JSON.stringify(data.extraData));
}
)
pluginComponentManager.on
on(eventType: string, callback: OnPushEventCallback|OnRequestEventCallback ): void
Listens for events of the request type and returns the requested data, or listens for events of the push type and receives the data pushed by the provider.
Atomic service API: This API can be used in atomic services since API version 12.
System capability: SystemCapability.ArkUI.ArkUI.Full
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
eventType | string | Yes | Type of the event to listen for. The options are as follows: “push”: The component provider pushes data to the component user. “request”: The component user proactively requests data from the component provider. |
callback | OnPushEventCallback |OnRequestEventCallback | Yes | Callback used to return the result. The type is OnPushEventCallback for the push event and OnRequestEventCallback for the request event. |
Example
import { pluginComponentManager, PluginComponentTemplate } from '@kit.ArkUI';
import { Want } from '@kit.AbilityKit';
function onPushListener(source:Want, template:PluginComponentTemplate, data:pluginComponentManager.KVObject, extraData:pluginComponentManager.KVObject) {
console.log("onPushListener template.source=" + template.source);
console.log("onPushListener source=" + JSON.stringify(source));
console.log("onPushListener template=" + JSON.stringify(template));
console.log("onPushListener data=" + JSON.stringify(data));
console.log("onPushListener extraData=" + JSON.stringify(extraData));
}
function onRequestListener(source:Want, name:string, data:pluginComponentManager.KVObject) {
console.error("onRequestListener");
console.log("onRequestListener source=" + JSON.stringify(source));
console.log("onRequestListener name=" + name);
console.log("onRequestListener data=" + JSON.stringify(data));
let RtnData:Record<string,string|pluginComponentManager.KVObject> = { 'template': "ets/pages/plugin.js", 'data': data };
return RtnData;
}
pluginComponentManager.on("push", onPushListener);
pluginComponentManager.on("request", onRequestListener);
About the external.json File
The external.json file is created by developers. It stores component names and template paths in key-value pairs. The component name is used as the keyword, and the corresponding template path is used as the value.
Example
{
"PluginProviderExample": "ets/pages/PluginProviderExample.js",
"plugintemplate2": "ets/pages/plugintemplate2.js"
}
你可能感兴趣的鸿蒙文章
harmony 鸿蒙ARKUI_TextPickerCascadeRangeContent
harmony 鸿蒙ARKUI_TextPickerRangeContent
harmony 鸿蒙ArkUI_AnimateCompleteCallback
harmony 鸿蒙ArkUI_ContextCallback
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦