javascript - 在 JavaScript 中将字节数组转换为二进制

标签 javascript google-chrome-extension typed-arrays

我在 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/

相关文章:

javascript - 在浏览器中执行 native 代码

javascript - Google Hangouts 扩展如何创建面板窗口?

javascript - Nodejs Javascript TypedArray 缓冲到字符串并再次返回

javascript - 有没有一种方法可以将类型化数组设置为零?

javascript - JS 绑定(bind)选项数据失败

javascript - 警告 : Functions are not valid as a React child. ReactJS

javascript - JS 的 `map()` 函数在 Objective-C 中的等价物是什么?

javascript - 添加 SetTimeout 和转换到 jQuery 显示/隐藏

javascript - 在 setBadgeText 内传递变量的正确语法

JavaScript TypedArray 混合类型