我在 JavaScript 中有一个字节类型数组,我需要将其转换为二进制,以便使用 chrome.usb.controlTransfer
发送到 Chrome 扩展中的 USB 设备.
简化示例:
var message = new Uint8Array(3);
message[0] = 1;
message[1] = 2;
message[3] = 3;
var transferInfo = {
direction: 'out',
recipient: 'device',
requestType: 'standard',
request: 0,
value: 0,
index: 0,
data: message
};
// 'device' is a valid handle to a device found with chrome.usb.findDevices
chrome.usb.controlTransfer(device, transferInfo, function(r) { console.log(r); });
这给了我错误:
Uncaught Error: Invalid value for argument 2. Property 'data': Expected 'binary' but got 'object'.
我不确定如何从 Uint8Array
获取 JavaScript 中被视为“二进制”的内容。这可能是 chrome 特定的东西,但我也找不到任何以这种方式调用此函数的示例。
我已经看到了Mozilla Documentation ,但这似乎特定于通过 XMLHttpRequest 发送数据。
最佳答案
看来我错过了这个例子within the Chrome documentation .
var message = new Uint8Array(3);
message[0] = 1;
message[1] = 2;
message[3] = 3;
var binaryMessage = message.buffer;
关于javascript - 在 JavaScript 中将字节数组转换为二进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19228836/