鸿蒙API14开辟【@ohos.pluginComponent (PluginComponentManager)】应用框 ...

打印 上一主题 下一主题

主题 2057|帖子 2057|积分 6171

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
用于给插件组件的使用方请求组件与数据,使用方发送组件模板和数据。
   阐明:
  

  • 本模块首批接口从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。
  导入模块

  1. import { pluginComponentManager } from '@kit.ArkUI'
  2. ts
复制代码
PluginComponentTemplate

Plugin组件模板参数。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明sourcestring是组件模板名。abilitystring是提供方Ability的bundleName。 pluginComponentManager

插件组件管理器。
KVObject

type KVObject = { [key: string]: number | string | boolean | [] | KVObject }
以键值对形式存储信息,符合json格式。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明[key: string]numberstringboolean PushParameters

使用PluginManager.Push方法时候的必要传递的参数。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明want[Want]是组件使用方Ability信息。namestring是组件名称。data[KVObject]是组件数据值。extraData[KVObject]是附加数据值。jsonPathstring否存放模板路径的[external.json]件的路径。 RequestParameters

使用PluginManager.Request方法时候的必要传递的参数。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明want[Want]是组件提供方Ability信息。namestring是请求组件名称。data[KVObject]是附加数据。jsonPathstring否存放模板路径的[external.json]文件的路径。jsonPath字段不为空或者未设置的时候不触发Request通信。 RequestCallbackParameters

PluginManager.Request方法时候吸收到的回调效果。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明componentTemplate[PluginComponentTemplate]是组件模板。data[KVObject]是组件数据。extraData[KVObject]是附加数据。 RequestEventResult

注册Request监听方法后,接受到的请求事件时候回应请求的数据类型。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
名称类型必填阐明templatestring否组件模板。data[KVObject]否组件数据。extraData[KVObject]否附加数据。 OnPushEventCallback

type OnPushEventCallback = (source: Want, template: PluginComponentTemplate, data: KVObject, extraData: KVObject) => void
对应Push事件的监听回调函数。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明source[Want]是Push请求发送方相关信息。template[PluginComponentTemplate]是Push请求发送方相关信息请求组件模板名称。data[KVObject]是数据。extraData[KVObject]是附加数据。 示例:
  1. import { pluginComponentManager, PluginComponentTemplate } from '@kit.ArkUI'
  2. import { Want } from '@kit.AbilityKit';
  3. function onPushListener(source: Want, template: PluginComponentTemplate, data: pluginComponentManager.KVObject, extraData: pluginComponentManager.KVObject) {
  4.   console.log("onPushListener template.source=" + template.source)
  5.   console.log("onPushListener source=" + JSON.stringify(source))
  6.   console.log("onPushListener template=" + JSON.stringify(template))
  7.   console.log("onPushListener data=" + JSON.stringify(data))
  8.   console.log("onPushListener extraData=" + JSON.stringify(extraData))
  9. }
  10. ts
复制代码
nRequestEventCallback

type OnRequestEventCallback = (source: Want, name: string, data: KVObject) => RequestEventResult
对应request事件的监听回调函数。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明source[Want]是request请求发送方相关信息。namestring是模板名称。data[KVObject]是附加数据。 返回值:
类型阐明[RequestEventResult]注册Request监听方法后,接受到的请求事件时候回应请求的数据类型。 示例:
  1. import { pluginComponentManager } from '@kit.ArkUI'
  2. import { Want } from '@kit.AbilityKit';
  3. function onRequestListener(source: Want, name: string, data: pluginComponentManager.KVObject) {
  4.   console.error("onRequestListener");
  5.   console.log("onRequestListener source=" + JSON.stringify(source));
  6.   console.log("onRequestListener name=" + name);
  7.   console.log("onRequestListener data=" + JSON.stringify(data));
  8.   let RtnData: Record<string, string | pluginComponentManager.KVObject> = {
  9.     'template': "ets/pages/plugin.js",
  10.     'data': data
  11.   }
  12.   return RtnData;
  13. }
  14. ts
复制代码
pluginComponentManager.push

push(param: PushParameters , callback: AsyncCallback): void
组件提供方向组件使用方主动发送组件与数据。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明param[PushParameters]是组件使用方的详细信息。callbackAsyncCallback是此次接口调用的异步回调。 示例:
  1. import { pluginComponentManager } from '@kit.ArkUI'
  2. pluginComponentManager.push(
  3.   {
  4.     want: {
  5.       bundleName: "com.example.provider",
  6.       abilityName: "com.example.provider.MainAbility",
  7.     },
  8.     name: "plugintemplate",
  9.     data: {
  10.       "key_1": "plugin component test",
  11.       "key_2": 34234
  12.     },
  13.     extraData: {
  14.       "extra_str": "this is push event"
  15.     },
  16.     jsonPath: "",
  17.   },
  18.   (err, data) => {
  19.     console.log("push_callback: push ok!");
  20.   }
  21. )
  22. ts
复制代码
pluginComponentManager.request

request(param: RequestParameters, callback: AsyncCallback): void
组件使用方向组件提供方主动请求组件。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明param[RequestParameters]是组件模板的详细请求信息。callbackAsyncCallback<[RequestCallbackParameters]>是此次请求的异步回调, 通过回调接口的参数返回接受请求的数据。 示例:
  1. import { pluginComponentManager } from '@kit.ArkUI'
  2. pluginComponentManager.request(
  3.   {
  4.     want: {
  5.       bundleName: "com.example.provider",
  6.       abilityName: "com.example.provider.MainAbility",
  7.     },
  8.     name: "plugintemplate",
  9.     data: {
  10.       "key_1": "plugin component test",
  11.       "key_2": 1111111
  12.     },
  13.     jsonPath: "",
  14.   },
  15.   (err, data) => {
  16.     console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability)
  17.     console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source)
  18.     console.log("request_callback: data=" + JSON.stringify(data.data))
  19.     console.log("request_callback: extraData=" + JSON.stringify(data.extraData))
  20.   }
  21. )
  22. ts
复制代码
pluginComponentManager.on

on(eventType: string, callback: OnPushEventCallback | OnRequestEventCallback ): void
提供方监听"request"类型的事件,给使用方返回通过request接口主动请求的数据;使用方监听"push"类型的事件,吸收提供方通过push接口主动推送的数据。
原子化服务API:  从API version 12开始,该接口支持在原子化服务中使用。
体系本领:  SystemCapability.ArkUI.ArkUI.Full
参数:
参数名类型必填阐明eventTypestring是监听的事件类型, 可选值为:“push” 、“request”。 "push”:指组件提供方向使用方主动推送数据。 "request”:指组件使用方向提供方主动请求数据。callback[OnPushEventCallback][OnRequestEventCallback]是 示例:
  1. import { pluginComponentManager, PluginComponentTemplate } from '@kit.ArkUI'
  2. import { Want } from '@kit.AbilityKit';
  3. function onPushListener(source:Want, template:PluginComponentTemplate, data:pluginComponentManager.KVObject, extraData:pluginComponentManager.KVObject) {
  4.   console.log("onPushListener template.source=" + template.source)
  5.   console.log("onPushListener source=" + JSON.stringify(source))
  6.   console.log("onPushListener template=" + JSON.stringify(template))
  7.   console.log("onPushListener data=" + JSON.stringify(data))
  8.   console.log("onPushListener extraData=" + JSON.stringify(extraData))
  9. }
  10. function onRequestListener(source:Want, name:string, data:pluginComponentManager.KVObject) {
  11.   console.error("onRequestListener");
  12.   console.log("onRequestListener source=" + JSON.stringify(source));
  13.   console.log("onRequestListener name=" + name);
  14.   console.log("onRequestListener data=" + JSON.stringify(data));
  15.   let RtnData:Record<string,string|pluginComponentManager.KVObject> = { 'template': "ets/pages/plugin.js", 'data': data }
  16.   return RtnData;
  17. }
  18. pluginComponentManager.on("push", onPushListener)
  19. pluginComponentManager.on("request", onRequestListener)
  20. ts
复制代码
external.json文件阐明

external.json文件由开辟者创建。external.json中以键值对形式存放组件名称以及对应模板路径。以组件名称name作为关键字,对应模板路径作为值。
示例
  1. {
  2.   "PluginProviderExample": "ets/pages/PluginProviderExample.js",
  3.   "plugintemplate2": "ets/pages/plugintemplate2.js"
  4. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表