微信网站对接,阿里巴巴怎么做公司网站,长春建站模板制作,北京市工程建设信息交易网站提供外部应用组件嵌入式显示功能#xff0c;即外部应用提供的UI可在本应用内显示。 说明#xff1a; 该组件从API Version 9开始支持。后续版本如有新增内容#xff0c;则采用上角标单独标记该内容的起始版本。本组件为系统接口。 子组件
无
接口
PluginComponent(value:…提供外部应用组件嵌入式显示功能即外部应用提供的UI可在本应用内显示。 说明 该组件从API Version 9开始支持。后续版本如有新增内容则采用上角标单独标记该内容的起始版本。本组件为系统接口。 子组件
无
接口
PluginComponent(value: { template: PluginComponentTemplate, data: KVObject})
创建插件组件用于显示外部应用提供的UI。
参数
参数名参数类型必填参数描述value{ template: PluginComponentTemplate, data: KVObject }是template: 组件模板用于跟提供者定义的组件绑定。 data: 传给插件组件提供者使用的数据。
PluginComponentTemplate类型说明
参数类型描述sourcestring组件模板名。bundleNamestring提供者Ability的bundleName。
属性
必须显式设置组件宽高为非0有效值。
说明
模板支持两种提供方式 1.使用绝对路径进行资源提供source字段填写模板绝对路径bundleName不需要填写。仅适用于不需要加载资源的单独模板页面不建议使用。 2.通过应用包进行资源提供bundleName字段需要填写应用包名source字段填写相对hap包的模板相对路径对于多hap场景通过相对路径模块名称的方式进行hap包的确认。 例如{sourcepages/PluginProviderExample.etsentry, bundleName:com.example.provider} 仅对FA模型支持source字段填写AbilityName进行模板提供。 例如{sourceplugin, bundleName:com.example.provider}
事件
仅支持绑定手势方法并分发给提供方页面在提供方页面内部处理。
除支持通用事件还支持以下事件
名称功能描述onComplete(callback: () void)组件加载完成回调。onError(callback: (info: { errcode: number, msg: string }) void)组件加载错误回调。 errcode: 错误码。 msg: 错误信息。
示例
组件使用方
//PluginUserExample.ets
import plugin from ./plugin_component
interface Info{errcode:number,msg:string
}
Entry
Component
struct PluginUserExample {build() {Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center, justifyContent: FlexAlign.Center }) {Text(Hello World).fontSize(50).fontWeight(FontWeight.Bold)Button(Register Request Listener).fontSize(30).width(400).height(100).margin({top:20}).onClick((){plugin.onListener()console.log(Button(Register Request Listener))})Button(Request).fontSize(50).width(400).height(100).margin({ top: 20 }).onClick(() {plugin.Request()console.log(Button(Request))})PluginComponent({template: { source: pages/PluginProviderExample.etsentry, bundleName: com.example.plugin },data: { countDownStartValue: new countDownStartValue }}).size({ width: 500, height: 350 }).onComplete(() {console.log(onComplete)}).onError((info:Info) {console.log(onComplete info.errcode : info.msg)})}.width(100%).height(100%)}
}
组件提供方
//PluginProviderExample.ets
import plugin from ./plugin_componentEntry
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 })}
}
Plugin组件工具
FA模型
//当前示例代码仅适用于js源文件
//plugin_component.js
import pluginComponentManager from ohos.pluginComponentfunction onPushListener(source, template, data, extraData) {console.log(onPushListener template.source template.source)console.log(onPushListener template.ability template.ability)console.log(onPushListener data JSON.stringify(data))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 listeneronListener() {pluginComponentManager.on(push, onPushListener)pluginComponentManager.on(request, onRequestListener)},Push() {// 组件提供方主动发送事件pluginComponentManager.push({want: {bundleName: com.example.plugin,abilityName: com.example.myapplication.PluginProviderExample,},name: PluginProviderExample,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!);})},Request() {// 组件使用方主动发送事件pluginComponentManager.request({want: {bundleName: com.example.plugin,abilityName: com.example.myapplication.PluginProviderExample,},name: PluginProviderExample,data: {key_1: plugin component test,key_2: 34234},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))})}
}
Stage模型
//当前示例代码仅适用于js源文件
//plugin_component.js
import pluginComponentManager from ohos.pluginComponentfunction onPushListener(source, template, data, extraData) {console.log(onPushListener template.source template.source)console.log(onPushListener template.ability template.ability)console.log(onPushListener data JSON.stringify(data))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 listeneronListener() {pluginComponentManager.on(push, onPushListener)pluginComponentManager.on(request, onRequestListener)},Push() {// 组件提供方主动发送事件pluginComponentManager.push({owner: {bundleName: com.example.myapplication,abilityName: com.example.myapplication.MainAbility,},target: {bundleName: com.example.plugin,abilityName: com.example.myapplication.PluginProviderExample,},name: PluginProviderExample,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!);})},Request() {// 组件使用方主动发送事件pluginComponentManager.request({owner: {bundleName: com.example.myapplication,abilityName: com.example.myapplication.MainAbility,},target: {bundleName: com.example.plugin,abilityName: com.example.myapplication.PluginProviderExample,},name: PluginProviderExample,data: {key_1: plugin component test,key_2: 34234},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))})}
}
最后有很多小伙伴不知道学习哪些鸿蒙开发技术不知道需要重点掌握哪些鸿蒙应用开发知识点而且学习时频繁踩坑最终浪费大量时间。所以有一份实用的鸿蒙Harmony NEXT资料用来跟着学习是非常有必要的。
这份鸿蒙Harmony NEXT资料包含了鸿蒙开发必掌握的核心知识要点内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等鸿蒙Harmony NEXT技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助有需要的小伙伴自行领取限时开源先到先得~无套路领取
获取这份完整版高清学习路线请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙Harmony NEXT最新学习路线 HarmonOS基础技能 HarmonOS就业必备技能 HarmonOS多媒体技术 鸿蒙NaPi组件进阶 HarmonOS高级技能 初识HarmonOS内核 实战就业级设备开发 有了路线图怎么能没有学习资料呢小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙OpenHarmony 学习手册共计1236页与鸿蒙OpenHarmony 开发入门教学视频内容包含ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完整版高清学习路线请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开发入门教学视频》 《鸿蒙生态应用开发V2.0白皮书》 《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建 《鸿蒙开发基础》
ArkTS语言安装DevEco Studio运用你的第一个ArkTS应用ArkUI声明式UI开发.…… 《鸿蒙开发进阶》
Stage模型入门网络管理数据管理电话服务分布式应用开发通知与窗口管理多媒体技术安全技能任务管理WebGL国际化开发应用测试DFX面向未来设计鸿蒙系统移植和裁剪定制…… 《鸿蒙进阶实战》
ArkTS实践UIAbility应用网络案例…… 获取以上完整鸿蒙HarmonyOS学习资料请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说华为鸿蒙不再兼容安卓对中年程序员来说是一个挑战也是一个机会。只有积极应对变化不断学习和提升自己他们才能在这个变革的时代中立于不败之地。