1

我编写了一个使用 js-ctypes 的扩展。我在 js-ctypes 与 C 库函数绑定的扩展中有一个函数。现在,我想通过扩展(js-ctypes)将从网页加载的一些数据传递给这个 C 库。我该怎么做 ?

我遇到了 - https://developer.mozilla.org/en-US/docs/Code_snippets/Interaction_between_privileged_and_non-privileged_pa​​ges。我了解传递消息(即字符串)的部分,但现在我如何使用它将数据从网页传递到我的扩展的 js-ctypes 绑定函数?

正是我在我的网页 js 脚本中分配了一个数组。填充一些数据。现在我需要将此数组/数据发送到 C 库函数,即使用此数据调用 C lib 函数

4

1 回答 1

2

与您的扩展通信,以 JSON 格式发送数据(有时数组序列化错误)。

例如,您可以发送事件:

var obj = JSON.stringify({arg1: 3, arg2: "some text"});
var event = new CustomEvent("YourAddonEvent", { detail: obj });
top.dispatchEvent(event);

在扩展解析 JSON 中,您将获得带有参数的对象。

var args = JSON.parse(event.detail);

加载库并声明函数后,例如:

var func = lib.declare("YourFuncName", ctypes.default_abi, ctypes.int, ctypes.int, ctypes.char.ptr, );

你可以调用你的函数:

var result = func(args.arg1, args.arg2);
于 2012-12-20T07:46:33.250 回答