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

@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

参数:

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

返回值:

类型说明
[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

参数:

参数名类型必填说明
methodNamestring方法名称。
parametersRecord<string, Parameter>方法参数列表。
parametersArray<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

参数:

参数名类型必填说明
methodMethodData方法数据。
callbackAsyncCallback<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端的方法。

参数:

参数名类型必填说明
methodstring方法名称。
callbackAsyncCallback<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]数据。
callbackAsyncCallback<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星河版开发学习文档》  

  • 21
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值