未验证 提交 2e99c8f3 编写于 作者: O openharmony_ci 提交者: Gitee

!6057 plugin component docs

Merge pull request !6057 from Yao.inhome/plu_doc_branch
...@@ -81,7 +81,8 @@ push(param: PushParameters, callback: AsyncCallback<void>): void ...@@ -81,7 +81,8 @@ push(param: PushParameters, callback: AsyncCallback<void>): void
| extraData | KVObject | 否 | 附加数据值。 | | extraData | KVObject | 否 | 附加数据值。 |
- 示例 - 示例
[组件使用者调用接口](#组件使用者调用接口)示例。
[Plugin组件提供方](#组件提供方)示例。
## request ## request
...@@ -117,7 +118,8 @@ request(param: RequestParameters, callback: AsyncCallback<RequestCallbackPara ...@@ -117,7 +118,8 @@ request(param: RequestParameters, callback: AsyncCallback<RequestCallbackPara
- 示例 - 示例
[组件使用者调用接口](#组件使用者调用接口)示例。
[Plugin组件使用方](#组件使用方)示例。
## on ## on
...@@ -146,22 +148,23 @@ on(eventType: string, callback: OnPushEventCallback | OnRequestEventCallback): v ...@@ -146,22 +148,23 @@ on(eventType: string, callback: OnPushEventCallback | OnRequestEventCallback): v
| extraData | KVObjec | 附加数据。 | | extraData | KVObjec | 附加数据。 |
- 示例 - 示例
[组件使用者调用接口](#组件使用者调用接口)示例。
[Plugin组件工具](#Plugin组件工具)示例。
## 示例 ## 示例
### 使用PluginComponent组件 ### 组件使用方
``` ```ts
import plugin from "../../test/plugin_component.js" //PluginUserExample.ets
import plugincomponent from '@ohos.plugincomponent' import plugin from "plugin_component.js"
@Entry @Entry
@Component @Component
struct PluginComponentExample { struct PluginUserExample {
@StorageLink("plugincount") plugincount: Object[] = [ @StorageLink("plugincount") plugincount: Object[] = [
{ source: 'plugincomponent1', ability: 'com.example.plugin' }, { source: 'plugincomponent1', ability: 'com.example.plugin' },
{ source: 'plugintemplate', ability: 'com.example.myapplication' }, { source: 'plugintemplate', ability: 'com.example.myapplication' },
...@@ -172,32 +175,23 @@ struct PluginComponentExample { ...@@ -172,32 +175,23 @@ struct PluginComponentExample {
Text('Hello World') Text('Hello World')
.fontSize(50) .fontSize(50)
.fontWeight(FontWeight.Bold) .fontWeight(FontWeight.Bold)
Button('Push') Button('Register Request Listener')
.fontSize(50) .fontSize(30)
.width(400)
.height(100)
.onClick(() => {
plugin.Push()
console.log("Button('Push')")
})
.margin({ top: 20 })
Button('Request1')
.fontSize(50)
.width(400) .width(400)
.height(100) .height(100)
.margin({ top: 20 }) .margin({top:20})
.onClick(() => { .onClick(()=>{
plugin.Request1() plugin.onListener()
console.log("Button('Request1')") console.log("Button('Register Request Listener')")
}) })
Button('Request2') Button('Request')
.fontSize(50) .fontSize(50)
.width(400) .width(400)
.height(100) .height(100)
.margin({ top: 20 }) .margin({ top: 20 })
.onClick(() => { .onClick(() => {
plugin.Request2() plugin.Request()
console.log("Button('Request2')") console.log("Button('Request')")
}) })
ForEach(this.plugincount, item => { ForEach(this.plugincount, item => {
PluginComponent({ PluginComponent({
...@@ -214,15 +208,58 @@ struct PluginComponentExample { ...@@ -214,15 +208,58 @@ struct PluginComponentExample {
} }
.width('100%') .width('100%')
.height('100%') .height('100%')
}
} }
``` ```
### 组件提供方
### 组件使用者调用接口 ```ts
//PluginProviderExample.ets
import plugin from "plugin_component.js"
@Entry
@Component
struct PluginProviderExample {
@State message: string = 'no click!'
build() {
Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {
Button('Register Push Listener')
.fontSize(30)
.width(400)
.height(100)
.margin({top:20})
.onClick(()=>{
plugin.onListener()
console.log("Button('Register Push Listener')")
})
Button('Push')
.fontSize(30)
.width(400)
.height(100)
.margin({top:20})
.onClick(()=>{
plugin.Push()
this.message = "Button('Push')"
console.log("Button('Push')")
})
Text(this.message)
.height(150)
.fontSize(30)
.padding(5)
.margin(5)
}.width('100%').height('100%').backgroundColor(0xDCDCDC).padding({ top: 5 })
}
}
``` ```
import pluginComponentManager from '@ohos.plugincomponent'
### Plugin组件工具
```js
//plugin_component.js
import pluginComponentManager from '@ohos.pluginComponent'
function onPushListener(source, template, data, extraData) { function onPushListener(source, template, data, extraData) {
console.log("onPushListener template.source=" + template.source) console.log("onPushListener template.source=" + template.source)
...@@ -239,14 +276,23 @@ function onPushListener(source, template, data, extraData) { ...@@ -239,14 +276,23 @@ function onPushListener(source, template, data, extraData) {
console.log("onPushListener extraData=" + JSON.stringify(extraData)) console.log("onPushListener extraData=" + JSON.stringify(extraData))
} }
function onRequestListener(source, name, data)
{
console.log("onRequestListener name=" + name);
console.log("onRequestListener data=" + JSON.stringify(data));
return {template:"plugintemplate", data:data};
}
export default { export default {
//register listener //register listener
onListener() { onListener() {
pluginComponentManager.on("push", onPushListener) pluginComponentManager.on("push", onPushListener)
pluginComponentManager.on("request", onRequestListener)
}, },
Request() { Push() {
// 组件使用者主动发送事件 // 组件提供方主动发送事件
pluginComponentManager.request({ pluginComponentManager.push(
{
want: { want: {
bundleName: "com.example.myapplication", bundleName: "com.example.myapplication",
abilityName: "com.example.myapplication.MainAbility", abilityName: "com.example.myapplication.MainAbility",
...@@ -256,43 +302,19 @@ export default { ...@@ -256,43 +302,19 @@ export default {
"key_1": "plugin component test", "key_1": "plugin component test",
"key_2": 34234 "key_2": 34234
}, },
jsonPath: "assets/js", extraData: {
"extra_str": "this is push event"
},
jsonPath: "",
}, },
(err, data) => { (err, data) => {
console.log("request_callback1: componentTemplate.ability=" + data.componentTemplate.ability) console.log("push_callback: push ok!");
console.log("request_callback1: componentTemplate.source=" + data.componentTemplate.source)
var jsonObject = JSON.parse(data.componentTemplate.source)
console.log("request_callback1:source json object" + jsonObject)
var jsonArry = jsonObject.ExternalComponent
for (var i in jsonArry) {
console.log(jsonArry[i])
}
console.log("request_callback1:source json string" + JSON.stringify(jsonObject))
console.log("request_callback1: data=" + JSON.stringify(data.data))
console.log("request_callback1: extraData=" + JSON.stringify(data.extraData))
} }
) )
}
}
// 组件提供者使用接口示例
import pluginComponentManager from '@ohos.plugincomponent'
function onRequestListener(source, name, data) {
console.log("onRequestListener name=" + name)
console.log("onRequestListener data=" + JSON.stringify(data))
return { template: "plugintemplate", data: data }
}
export default {
//register listener
onListener() {
pluginComponentManager.on("request", onRequestListener)
}, },
Push() { Request() {
// 组件提供者主动发送事件 // 组件使用方主动发送事件
pluginComponentManager.push( pluginComponentManager.request({
{
want: { want: {
bundleName: "com.example.myapplication", bundleName: "com.example.myapplication",
abilityName: "com.example.myapplication.MainAbility", abilityName: "com.example.myapplication.MainAbility",
...@@ -302,17 +324,22 @@ export default { ...@@ -302,17 +324,22 @@ export default {
"key_1": "plugin component test", "key_1": "plugin component test",
"key_2": 34234 "key_2": 34234
}, },
extraData: { jsonPath: "",
"extra_str": "this is push event"
},
jsonPath: "assets/js",
}, },
(err, data) => { (err, data) => {
console.log("push_callback1: componentTemplate.ability=" + data.componentTemplate.ability) console.log("request_callback: componentTemplate.ability=" + data.componentTemplate.ability)
console.log("push_callback1: componentTemplate.source=" + data.componentTemplate.source) console.log("request_callback: componentTemplate.source=" + data.componentTemplate.source)
console.log("push ok!") var jsonObject = JSON.parse(data.componentTemplate.source)
console.log("request_callback:source json object" + jsonObject)
var jsonArry = jsonObject.ExternalComponent
for (var i in jsonArry) {
console.log(jsonArry[i])
}
console.log("request_callback:source json string" + JSON.stringify(jsonObject))
console.log("request_callback: data=" + JSON.stringify(data.data))
console.log("request_callback: extraData=" + JSON.stringify(data.extraData))
} }
) )
}, }
} }
``` ```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册