User Tools

Site Tools


Sidebar

Go Back

Refresh

You are not allowed to add pages

Direct Link

library:pan:nativeprocedurecall

Native Procedure Call

1. 平台描述

多个Js节点共享一个Native节点,Native节点为Js提供底层功能扩展,同时提供数据传输路由能力,交换Js节点与外连端口间的数据。

术语:

  1. Js节点: 在Web端页面中的一个Js对象,提供Js与Native的交换。
  2. Native节点: 为Js节点提供服务的Native对象。
  3. 底层功能扩展:Js需要使用,但不能实现或实现效率低的功能接口,Js以API方式使用的,由Native实现的功能。
  4. 外连端口:对外交换的端口,例如USB,Socket,HID等。

2. 统一信息接口(UMI)

采用JSON格式字符串传输NPC信息包。

在JSON字符串中,数据值可使用以下类型:

  • 字符串 (string)
  • 数字 (number)
  • 对象(JSON 对象) (object)
  • 数组 (array)
  • 布尔 (boolean)
  • null

2.1 IN信息

2.1.1 信息字段

字段 类型 说明 其他
ver number 协议版本 必须
sn number 包序号 必须
cmd number 命令类型 必须
class string 调用过程所属模块 可选
proc string 调用过程名 可选
extra number 附加 可选
extra2 string 附加2 可选
arg object 调用参数 可选
hex string 16进制数字串 可选
asyncid number 异步调用通道号 异步调用必须,同步调用可选

cmd:
0: 调用服务
1: 异步调用
2: 循环调用

2.1.2 信息解析流程

信息包有2种类型:数据信息包(D) 和 过程调用信息包(C),数据信息包存在[hex]字段,过程调用信息包包含[proc]字段。

过程调用包

[proc]字段(必须)指定所需调用的过程,[arg]字段(可选)调用参数,[extra](可选)附加调用模式选择。

[extra]字段取值说明:
0 - 标志调用
1 - 附带通信端点号调用
其他 - 保留

数据信息包

3. 数据信息包

数据包支持2种数据格式:字符串 和 十六进制字符串。

序号 字段 类型 说明
1 dest number
2 src number
3 DType number 数据包类型 0: 字符串 1: 16进制数字符串
4 String string 字符串数据
5 Hex string 16进制数值符串

4. 命令信息包

命令信息包类型:

  • 原生过程调用/响应 C.Type = 0

4.1 原生过程调用与响应

调用原生过程的命令信息包格式(JS → Native)

序号 字段 类型 说明
1 CType number 0
2 Sn number 调用流水号
3 Procedure string 过程名
4 Argument object 参数

调用原生过程返回的命令信息包格式(Native → Js)

序号 字段 类型 说明
1 CType number 0
2 Sn number 调用流水号
3 Procedure string 过程名
4 Response object 过程调用返回

Response Object格式

序号 字段 类型 说明
1 Error number 返回代码 0 : No Error, -1 : Procedure not found, -2 : Argument error
2 Sn number 调用流水号
3 ErrorMessage string 返回代码说明(可选)
4 其他

4.1.1 节点注册

  • 注册

Procedure: Register

Argument:

序号 字段 类型 说明
1 Node string 节点名(App名)
2 iframeIndex number iFrame序号(-1,非iframe)
  • 响应

4.1.2 系统信息

library/pan/nativeprocedurecall.txt · Last modified: 2023/12/10 14:39 by lhaosen