
#HarmonyOS NEXT体验官#ArkUI-X与原生view平台视图开发 原创
ArkUI-X与原生view平台视图开发
首先我们要了解为什么要使用平台视图。
平台视图,主要是为了利用原生组件,减少开发成本,提供了ArkUI-X与原生view进行混合显示。
以Android为例,ArkUI-X框架支持将原生View和ArkUI组件混合显示的能力,用户可以编写ArkTS代码,java原生代码,就可以在ArkUI-X框架上显示原生组件的视图。
这里我们以Android平台为例,别问我为什么以Android距离,因为我就会Android。
使用场景及能力
使用场景
平台视图主要用于这样的场景:应用需要显示原生组件的视图,如地图,而在OpenHarmony中没有对应的跨平台的类似组件的实现。
具体可用于以下场景:利用Android的地图原生组件,如显示地图等;这里我们就可以使用XComponent的PLATFORMVIEW模式下,能够混合显示ArkUI组件与原生view,并支持用户操作的事件处理。
接口支持
平台视图提供的接口包括,IPlatformView接口,PlatformViewFactory接口,支持Android、iOS。具体如下表:
IPlatformView接口:
函数名称 | 类型 | 描述 |
---|---|---|
getView() | View | 获得原生组件View |
onDispose() | void | 资源销毁的处置 |
getXComponentID() | String | 返回原生组件的ID |
PlatformViewFactory接口:
函数名称 | 类型 | 描述 |
---|---|---|
getPlatformView(String) | IPlatformView | 获得IPlatformView接口 |
接下来,我们一起看一下,如何开发,
开发步骤
开发者需要做如下3个步骤。
1、【Android】 自定义PlatformView, PlatformViewFactory
在 Android 端新建一个实现 IPlatformView 接口的类,并实现 getView 、onDispose()接口;
在 Android 端新建一个实现 PlatformViewFactory 接口的类,并实现 getPlatformView()接口;
- 1.
- 2.
2、【Android】 定义StageActivity,注册上述的 PlatformViewFactory类
再实现一个继承 StageActivity的类,在其构造函数中创建(1)的 PlatformViewFactory 对象;
把 PlatformViewFactory 类注册到 StageActivity中。
- 1.
- 2.
3、【Arkui-X ets】使用PlatformView
结合layout组件中使用widget Xcomponent用来显示PlatformView
在 Android 端实现好了之后,就能在ArkUI端用ets来显示原生组件的视图了,如显示MapView。
- 1.
- 2.
案例:使用原生地图组件
1、自定义IPlatformView接口的实现类。
2、自定义PlatformViewFactory接口的实现类。
3、自定义StageActivity
把PlatformViewFactory实现类注册到StageActivity中。
4、在ArkTS中,使用PlatformView。
编写ArkUI页面platformview.ets。
最后我们就完成了平台视图的开发,是不是很厉害。好的,我们继续加油吧。鸿蒙未来可期。
