Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
2e99c8f3
D
Docs
项目概览
OpenHarmony
/
Docs
1 年多 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
2e99c8f3
编写于
7月 01, 2022
作者:
O
openharmony_ci
提交者:
Gitee
7月 01, 2022
浏览文件
操作
浏览文件
下载
差异文件
!6057 plugin component docs
Merge pull request !6057 from Yao.inhome/plu_doc_branch
上级
1ed8b5b4
5450b0f9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
98 addition
and
71 deletion
+98
-71
zh-cn/application-dev/reference/arkui-ts/ts-basic-components-plugincomponent.md
...reference/arkui-ts/ts-basic-components-plugincomponent.md
+98
-71
未找到文件。
zh-cn/application-dev/reference/arkui-ts/ts-basic-components-plugincomponent.md
浏览文件 @
2e99c8f3
...
...
@@ -81,7 +81,8 @@ push(param: PushParameters, callback: AsyncCallback<void>): void
| extraData | KVObject | 否 | 附加数据值。 |
-
示例
见
[
组件使用者调用接口
](
#组件使用者调用接口
)
示例。
见
[
Plugin组件提供方
](
#组件提供方
)
示例。
## request
...
...
@@ -117,7 +118,8 @@ request(param: RequestParameters, callback: AsyncCallback<RequestCallbackPara
-
示例
见
[
组件使用者调用接口
](
#组件使用者调用接口
)
示例。
见
[
Plugin组件使用方
](
#组件使用方
)
示例。
## on
...
...
@@ -146,22 +148,23 @@ on(eventType: string, callback: OnPushEventCallback | OnRequestEventCallback): v
| extraData | KVObjec | 附加数据。 |
-
示例
见
[
组件使用者调用接口
](
#组件使用者调用接口
)
示例。
见
[
Plugin组件工具
](
#Plugin组件工具
)
示例。
## 示例
###
使用PluginComponent组件
###
组件使用方
```
import plugin from "../../test/plugin_component.js"
import plugin
component from '@ohos.plugincomponent'
```
ts
//PluginUserExample.ets
import
plugin
from
"
plugin_component.js
"
@
Entry
@
Component
struct Plugin
Component
Example {
struct
Plugin
User
Example
{
@
StorageLink
(
"
plugincount
"
)
plugincount
:
Object
[]
=
[
{
source
:
'
plugincomponent1
'
,
ability
:
'
com.example.plugin
'
},
{
source
:
'
plugintemplate
'
,
ability
:
'
com.example.myapplication
'
},
...
...
@@ -172,32 +175,23 @@ struct PluginComponentExample {
Text
(
'
Hello World
'
)
.
fontSize
(
50
)
.
fontWeight
(
FontWeight
.
Bold
)
Button('Push')
.fontSize(50)
.width(400)
.height(100)
.onClick(() => {
plugin.Push()
console.log("Button('Push')")
})
.margin({ top: 20 })
Button('Request1')
.fontSize(50)
Button
(
'
Register Request Listener
'
)
.
fontSize
(
30
)
.
width
(
400
)
.
height
(
100
)
.margin({
top: 20
})
.onClick(()
=>
{
plugin.
Request1
()
console.log("Button('Re
quest1
')")
.
margin
({
top
:
20
})
.
onClick
(()
=>
{
plugin
.
onListener
()
console
.
log
(
"
Button('Re
gister Request Listener
')
"
)
})
Button('Request
2
')
Button
(
'
Request
'
)
.
fontSize
(
50
)
.
width
(
400
)
.
height
(
100
)
.
margin
({
top
:
20
})
.
onClick
(()
=>
{
plugin.Request
2
()
console.log("Button('Request
2
')")
plugin
.
Request
()
console
.
log
(
"
Button('Request')
"
)
})
ForEach
(
this
.
plugincount
,
item
=>
{
PluginComponent
({
...
...
@@ -214,15 +208,58 @@ struct PluginComponentExample {
}
.
width
(
'
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
)
{
console
.
log
(
"
onPushListener template.source=
"
+
template
.
source
)
...
...
@@ -239,14 +276,23 @@ function onPushListener(source, template, data, 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
{
//register listener
onListener
()
{
pluginComponentManager
.
on
(
"
push
"
,
onPushListener
)
pluginComponentManager
.
on
(
"
request
"
,
onRequestListener
)
},
Request() {
// 组件使用者主动发送事件
pluginComponentManager.request({
Push
()
{
// 组件提供方主动发送事件
pluginComponentManager
.
push
(
{
want
:
{
bundleName
:
"
com.example.myapplication
"
,
abilityName
:
"
com.example.myapplication.MainAbility
"
,
...
...
@@ -256,43 +302,19 @@ export default {
"
key_1
"
:
"
plugin component test
"
,
"
key_2
"
:
34234
},
jsonPath: "assets/js",
extraData
:
{
"
extra_str
"
:
"
this is push event
"
},
jsonPath
:
""
,
},
(
err
,
data
)
=>
{
console.log("request_callback1: componentTemplate.ability=" + data.componentTemplate.ability)
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))
console
.
log
(
"
push_callback: push ok!
"
);
}
)
}
}
// 组件提供者使用接口示例
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() {
// 组件提供者主动发送事件
pluginComponentManager.push(
{
Request
()
{
// 组件使用方主动发送事件
pluginComponentManager
.
request
({
want
:
{
bundleName
:
"
com.example.myapplication
"
,
abilityName
:
"
com.example.myapplication.MainAbility
"
,
...
...
@@ -302,17 +324,22 @@ export default {
"
key_1
"
:
"
plugin component test
"
,
"
key_2
"
:
34234
},
extraData: {
"extra_str": "this is push event"
},
jsonPath: "assets/js",
jsonPath
:
""
,
},
(
err
,
data
)
=>
{
console.log("push_callback1: componentTemplate.ability=" + data.componentTemplate.ability)
console.log("push_callback1: componentTemplate.source=" + data.componentTemplate.source)
console.log("push ok!")
console
.
log
(
"
request_callback: componentTemplate.ability=
"
+
data
.
componentTemplate
.
ability
)
console
.
log
(
"
request_callback: componentTemplate.source=
"
+
data
.
componentTemplate
.
source
)
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录