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-C
stringjava.lang.StringNSString
number(32bit integer)java.lang.IntegerNSNumber numberWithInt
number(64bit integer)java.lang.LongNSNumber numberWithLong
number(double)java.lang.DoubleNSNumber numberWithDouble
booleanjava.lang.BooleanNSNumber numberWithBool
nullnullNSNull
Array<string>string[]NSArray
Array<number>int[], long[], double[]NSArray
Array<boolean>boolean[]NSArray
Record<string, S>java.util.HashMapNSDictionary

二进制格式数据支持类型表:

ArkTSjava类型OC类型
nullnullNSNull
booleanjava.lang.BooleanNSNumber numberWithBool
number(32bit integer)java.lang.IntegerNSNumber numberWithInt
number(64bit integer)java.lang.LongNSNumber numberWithLong
number(double)java.lang.DoubleNSNumber numberWithDouble
stringjava.lang.StringNSString
ArrayBufferjava.nio.ByteBufferNSData
Array<string>string[]NSArray
Array<number>int[], long[], double[]NSArray
Array<boolean>boolean[]NSArray
Record<string, S>java.util.HashMapNSDictionary

说明

1、S表示string、number、boolean类型;

2、Record表示<key, value>类型,key仅为string类型,value为S类型;

3、string类型数据最大传输大小限制为2MB;

原创作者: zhaloe 转载于: https://www.cnblogs.com/zhaloe/p/18937271
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值