鸿蒙ArkUI-X跨语言调用说明:【平台桥接开发指南(Android)Bridge API】

发布于:2024-05-22 ⋅ 阅读:(386) ⋅ 点赞:(0)

@arkui-x.bridge.d.ts (平台桥接)

本模块提供ArkUI端和Android或iOS平台端消息通信的功能,包括数据传输、方法调用和事件调用。需配套平台端API使用,Android侧请参考[BridgePlugin],iOS侧参考[BridgePlugin]。

说明:
开发前请熟悉鸿蒙开发指导文档: gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。
本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

导入模块

import bridge from '@arkui-x.bridge';

createBridge

createBridge(bridgeName: string): BridgeObject

定义BridgeObject类。

系统能力:  SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
bridgeName string 定义桥接名称。

返回值:

类型 说明
[BridgeObject] 桥接的接口类。

示例:

const bridgeObj: BridgeObject = bridge.createBridge('Bridge');

BridgeObject

桥接的接口类。

callMethod

callMethod(methodName: string, parameters?: Record<string, Parameter>): Promise<ResultValue>;

callMethod(methodName: string, ...parameters: Array<any>): Promise<ResultValue>;

调用平台方法。

系统能力:  SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
methodName string 方法名称。
parameters Record<string, Parameter> 方法参数列表。
parameters Array<any> 方法参数列表。

返回值:

类型 说明
[ResultValue] 平台方法执行结果。

错误码:

错误码ID 错误信息
1 管道不可用。
4 方法名称错误。
5 方法正确运行,不能重复运行。
6 方法未实现。

示例:

const bridgeObj = bridge.createBridge('Bridge');

bridgeObj.callMethod('nativeMethod').then((data)=>{
    console.log('data = ' + data);
}).catch((err) => {
    console.error('error = ' + JSON.stringify(err));
});

registerMethod

registerMethod(method: MethodData, callback: AsyncCallback<void>): void

registerMethod(method: MethodData): Promise<void>

注册ArkUI端方法,供Android或iOS平台端调用。

系统能力:  SystemCapability.ArkUI.ArkUI.Full

参数:

参数名 类型 必填 说明
method MethodData 方法数据。
callback AsyncCallback<void> callback方式的回调函数。

错误码:

错误码ID 错误信息
1 管道不可用。
8 方法已经被注册,不允许重复注册。

示例:

function jsMethod() {
  return 'ts return:jsMethod';
}

const bridgeObj = bridge.createBridge('Bridge');
bridgeObj.registerMethod({ name: 'jsMethod', method: jsMethod });
unRegisterMethod
unRegisterMethod(methodName: string, callback: AsyncCallback<void>): void

unRegisterMethod(methodName: string): Promise<void>

移除已注册的ArkUI端的方法。

参数:

参数名 类型 必填 说明
method string 方法名称。
callback AsyncCallback<void> callback方式的回调函数。

系统能力:  SystemCapability.ArkUI.ArkUI.Full

示例:

const bridgeObj = bridge.createBridge('Bridge');

bridgeObj.unRegisterMethod('jsMethod');

sendMessage

sendMessage(message: Message, callback: AsyncCallback<Response>): void

sendMessage(message: Message): Promise<Response>

向Platform平台侧发送数据。

参数:

参数名 类型 必填 说明
message [Message] 数据。
callback AsyncCallback<void> callback方式的回调函数。

返回值:

类型 说明
[Response] Platform平台侧应答数据。

系统能力:  SystemCapability.ArkUI.ArkUI.Full

示例:

const bridgeObj = bridge.createBridge('Bridge');

bridgeObj.sendMessage('jsMessage').then((data)=>{
    console.log('data =' + data);
}).catch((err) => {
    console.error('error =' + JSON.stringify(err));
});

setMessageListener

setMessageListener(callback: (message: Message) => Response)

设置用于接收Platform平台侧发送数据的回调。

参数:

参数名 类型 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿 必填 说明
callback (message: Message)=>Response 回调函数,接收Platform平台侧数据。
message [Message] Platform平台侧数据。


系统能力:  SystemCapability.ArkUI.ArkUI.Full

示例:

const bridgeObj = bridge.createBridge('Bridge');

bridgeObj.setMessageListener((data) => {
    console.log('receive data =' + data);
});

S

type S = number | boolean | string | null

说明:  定义桥接使用的基础数据类型。

T

type T = S | Array<number> | Array<boolean> | Array<string>

说明:  定义桥接使用的基础数据类型的数组类型。

Message

type Message = T | Record<string, T>

说明:  定义桥接使用结构数据类型。

Parameter

type Parameter = Message

说明:  定义方法参数类型。

Response

type Response = Message

说明:  定义应答的数据类型。

ResultValue

type ResultValue = T | Map<string, T>

说明:  定义方法返回值的类型。

鸿蒙Next核心技术分享

1、鸿蒙基础知识←《鸿蒙NEXT星河版开发学习文档》

2、鸿蒙ArkUI←《鸿蒙NEXT星河版开发学习文档》

3、鸿蒙进阶技术←《鸿蒙NEXT星河版开发学习文档》

 4、鸿蒙就业高级技能←《鸿蒙NEXT星河版开发学习文档》 

 5、鸿蒙多媒体技术←《鸿蒙NEXT星河版开发学习文档》 

6、鸿蒙南向驱动开发←《鸿蒙NEXT星河版开发学习文档》  

7、鸿蒙南向内核设备开发←《鸿蒙NEXT星河版开发学习文档》  

 8、鸿蒙系统裁剪与移植←《鸿蒙NEXT星河版开发学习文档》  


网站公告

今日签到

点亮在社区的每一天
去签到