ArkUI-X平台桥接Bridge说明
简介平台桥接用于客户端(ArkUI)和平台(Android或iOS)之间传递消息,即用于ArkUI与平台双向数据传递、ArkUI侧调用平台的方法、平台调用ArkUI侧的方法。
以Android平台为例,ArkTS和Java没有相互调用的能力,为了实现ArkTS和Java交互,需要ArkTS与C++交互,C++再与Java交互,反之亦然。但是对于开发者,就像是ArkTS和Java直接交互。
本文介绍如何通过平台桥接编写自定义的Android、iOS平台代码。ArkUI侧具体用法请参考Bridge API,Android侧参考BridgePlugin,iOS侧参考BridgePlugin。
使用场景及能力
使用场景
平台桥接主要用于这样的场景:应用需要复用平台的代码,而在OpenHarmony中没有对应的跨平台API(不包括UI相关)实现。
具体可用于以下场景:
1、ArkUI与平台双向传递数据,如传递JSON数据、图片等;
2、ArkUI侧调用平台的API,如获取Android或iOS平台上的电池电量、复用平台上的三方库等;
3、平台调用ArkUI侧的方法,如复用JavaScript的三方库等。
说明
平台桥接支持ArkUI调用Android Java API和iOS Objective-C API。此外,一些平台相关功能可直接通过已有的OpenHarmony跨平台API实现。
数据类型支持
平台桥接通过JSON格式或二进制格式序列化编解码传递数据,支持基础数据类型、数组类型和结构化数据。具体支持类型如下表
JSON格式数据支持类型表:
ArkTSJavaObjective-Cstringjava.lang.StringNSStringnumber(32bit integer)java.lang.IntegerNSNumber numberWithIntnumber(64bit integer)java.lang.LongNSNumber numberWithLongnumber(double)java.lang.DoubleNSNumber numberWithDoublebooleanjava.lang.BooleanNSNumber numberWithBoolnullnullNSNullArraystring[]NSArrayArrayint[], long[], double[]NSArrayArrayboolean[]NSArrayRecordjava.util.HashMapNSDictionary二进制格式数据支持类型表:
ArkTSjava类型OC类型nullnullNSNullbooleanjava.lang.BooleanNSNumber numberWithBoolnumber(32bit integer)java.lang.IntegerNSNumber numberWithIntnumber(64bit integer)java.lang.LongNSNumber numberWithLongnumber(double)java.lang.DoubleNSNumber numberWithDoublestringjava.lang.StringNSStringArrayBufferjava.nio.ByteBufferNSDataArraystring[]NSArrayArrayint[], long[], double[]NSArrayArrayboolean[]NSArrayRecordjava.util.HashMapNSDictionary说明
1、S表示string、number、boolean类型;
2、Record表示类型,key仅为string类型,value为S类型;
3、string类型数据最大传输大小限制为2MB;
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页:
[1]