ArkUI-X平台桥接Bridge说明

简介: 平台桥接实现ArkUI与Android/iOS间的双向数据传递及方法调用,支持数据类型包括JSON和二进制格式,适用于复用平台代码、跨平台API缺失的场景。开发者可通过Bridge API自定义Android或iOS代码,完成如数据传递、调用平台API或复用三方库等功能。文档提供ArkTS与Java/Objective-C交互的详细指引,涵盖基础数据类型、数组和结构化数据的支持。

简介

平台桥接用于客户端(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格式数据支持类型表:

ArkTS Java Objective-C
string java.lang.String NSString
number(32bit integer) java.lang.Integer NSNumber numberWithInt
number(64bit integer) java.lang.Long NSNumber numberWithLong
number(double) java.lang.Double NSNumber numberWithDouble
boolean java.lang.Boolean NSNumber numberWithBool
null null NSNull
Array\ string[] NSArray
Array\ int[], long[], double[] NSArray
Array\ boolean[] NSArray
Record\ java.util.HashMap NSDictionary

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

ArkTS java类型 OC类型
null null NSNull
boolean java.lang.Boolean NSNumber numberWithBool
number(32bit integer) java.lang.Integer NSNumber numberWithInt
number(64bit integer) java.lang.Long NSNumber numberWithLong
number(double) java.lang.Double NSNumber numberWithDouble
string java.lang.String NSString
ArrayBuffer java.nio.ByteBuffer NSData
Array\ string[] NSArray
Array\ int[], long[], double[] NSArray
Array\ boolean[] NSArray
Record\ java.util.HashMap NSDictionary

说明

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

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

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

相关文章
|
26天前
|
JavaScript 前端开发 安全
JDK1.8 新特性详解及具体使用方法
本文详细介绍了JDK 1.8的新特性及其组件封装方法,涵盖Lambda表达式、Stream API、接口默认与静态方法、Optional类、日期时间API、方法引用、Nashorn JavaScript引擎及类型注解等内容。通过具体代码示例,展示了如何利用这些特性简化代码、提高开发效率。例如,Lambda表达式可替代匿名内部类,Stream API支持集合的函数式操作,Optional类避免空指针异常,新日期时间API提供更强大的时间处理能力。合理运用这些特性,能够显著提升Java代码的简洁性、可读性和可维护性。
254 50
|
2月前
|
存储 IDE 开发工具
ArkUI-X跨平台框架接入指南
ArkUI-X是ArkUI的跨平台扩展框架,支持OpenHarmony、Android和iOS等多平台开发,未来还将增加更多平台支持。开发者只需一套主代码即可构建高性能、精美的多平台应用。使用DevEco Studio进行ArkUI-X开发时,需注意:仅支持ArkUI-X源码调试,各平台Native代码需用对应IDE处理;支持真机与模拟器调试;需配置相关SDK(如Android SDK)及环境变量(如ANDROID_HOME)。创建工程后,可通过DevEco Studio编译生成跨平台应用包,并在不同平台上运行查看效果。
231 64
|
26天前
|
自然语言处理 监控 PyTorch
nanoVLM: 简洁、轻量的纯 PyTorch 视觉-语言模型训练代码库
nanoVLM 是一个基于 PyTorch 的轻量级工具包,专为训练视觉语言模型(VLM)设计。它结构简洁、易于理解,适合初学者快速上手。支持在免费 Colab Notebook 上训练,结合视觉 Transformer 与语言模型,实现图像理解和文本生成。项目受 nanoGPT 启发,注重代码可读性与实现效率。
80 15
|
26天前
|
传感器 人工智能 IDE
通义灵码用户说 | 编程智能体+MCP加持,秒查附近蜜雪冰城
通义灵码现已全面支持Qwen3,新增智能体模式,具备自主决策、环境感知、工具使用等能力,可端到端完成编码任务。支持问答、文件编辑、智能体多模式自由切换,结合MCP工具与记忆功能,提升开发效率。AI IDE重构编程流程,让开发更智能高效。
308 20
|
23天前
|
监控 前端开发 JavaScript
HarmonyOSNext 崩溃急救指南:全局监听+同步退出 = 优雅保命!
本文介绍了HarmonyOS Next中Ark Ts的错误管理技巧,通过全局监听和同步退出机制实现应用崩溃保护。涵盖单线程、Promise及主线程卡死监控方案,并提供实战代码与避坑指南,帮助开发者优雅处理异常,保障用户体验。
136 65
|
23天前
|
存储 运维 JavaScript
《HarmonyOSNext应用崩溃自救指南:零数据丢失的故障恢复黑科技》
本文详解HarmonyOS Next应用崩溃时如何实现零数据丢失的故障恢复机制,涵盖API差异、核心接口与实战代码,助开发者提升App稳定性和用户体验。
145 65
|
19天前
|
物联网 开发工具
【HarmonyOS】鸿蒙应用蓝牙功能实现 (二)
【HarmonyOS】鸿蒙应用蓝牙功能实现 (二)
72 9
【HarmonyOS】鸿蒙应用蓝牙功能实现 (二)
|
19天前
|
定位技术 开发工具
【HarmonyOS】鸿蒙应用实现调用系统地图导航或路径规划
【HarmonyOS】鸿蒙应用实现调用系统地图导航或路径规划
85 5
【HarmonyOS】鸿蒙应用实现调用系统地图导航或路径规划
|
16天前
|
人工智能 Java Docker
Spring AI Alibaba 游乐场开放!一站式体验AI 应用开发全流程
Playground 是基于 Spring AI Alibaba 框架打造的 AI 应用体验平台,集成了对话、图片生成、RAG、MCP、工具调用等功能。用户可通过前端 UI 与后端完整实现快速复刻专属 AI 应用。项目支持 Docker 部署和本地构建,提供源码供定制开发,并配备详细文档与在线体验地址,助力开发者高效上手 AI 应用开发。
297 22