同时使用activeTab和串行权限

时间:2014-08-26 05:19:42

标签: google-chrome-extension google-chrome-app

我正在尝试使用硬件串行设备来更改Chrome中网页上显示的内容。我正在制作Chrome扩展程序,但似乎我无法同时使用activeTabserial权限。 activeTab权限要求应用不是打包的应用,serial权限要求打包应用。

如果可能的话,我如何解决这个问题?

我使用page redder示例代码作为更改网页的方式,但它需要activeTab权限。也许这有一个解决方法?感谢

2 个答案:

答案 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中的扩展捆绑在一起。