我正在尝试使用硬件串行设备来更改Chrome中网页上显示的内容。我正在制作Chrome扩展程序,但似乎我无法同时使用activeTab
和serial
权限。 activeTab
权限要求应用不是打包的应用,serial
权限要求打包应用。
如果可能的话,我如何解决这个问题?
我使用page redder示例代码作为更改网页的方式,但它需要activeTab
权限。也许这有一个解决方法?感谢
答案 0 :(得分:4)
我能想到的唯一方法是创建一个Chrome扩展程序和一个相互通信的Chrome应用程序:https://developer.chrome.com/extensions/messaging#external
// The ID of the extension we want to talk to.
var laserExtensionId = "abcdefghijklmnoabcdefhijklmnoabc";
// Make a simple request:
chrome.runtime.sendMessage(laserExtensionId, {getTargetData: true},
function(response) {
if (targetInRange(response.targetData))
chrome.runtime.sendMessage(laserExtensionId, {activateLasers: true});
});
// Start a long-running conversation:
var port = chrome.runtime.connect(laserExtensionId);
port.postMessage(...);
答案 1 :(得分:0)
另一种方法是制作与设备和扩展程序通信的Native Messaging host。
从架构的角度来看,这更有意义,但限制了您的部署选项,因为主机程序无法与Web Store中的扩展捆绑在一起。