Google chrome extension 同时使用activeTab和串行权限

Google chrome extension 同时使用activeTab和串行权限,google-chrome-extension,google-chrome-app,Google Chrome Extension,Google Chrome App,我正在尝试使用硬件串行设备来更改Chrome网页上显示的内容。我正在做一个Chrome扩展来实现这一点,但是似乎我不能同时使用activeTab和serial权限。activeTab权限要求应用程序不是打包应用程序,serial权限要求应用程序打包 如果可能的话,我怎样才能避开这个问题 我使用示例代码作为更改网页的方式,但是它需要activeTab权限。也许有解决办法?谢谢我能想到的唯一方法是创建一个Chrome扩展和一个Chrome应用程序,它们可以相互通信: //要与之对话的扩展的ID。 v

我正在尝试使用硬件串行设备来更改Chrome网页上显示的内容。我正在做一个Chrome扩展来实现这一点,但是似乎我不能同时使用
activeTab
serial
权限。
activeTab
权限要求应用程序不是打包应用程序,
serial
权限要求应用程序打包

如果可能的话,我怎样才能避开这个问题


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

我能想到的唯一方法是创建一个Chrome扩展和一个Chrome应用程序,它们可以相互通信:

//要与之对话的扩展的ID。
var laserExtensionId=“abcdefghijklmnoabcdefhijklmnoabc”;
//提出一个简单的请求:
sendMessage(laserExtensionId,{getTargetData:true},
功能(响应){
if(targetRange(response.targetData))
sendMessage(laserExtensionId,{activateLasers:true});
});
//开始长时间对话:
var port=chrome.runtime.connect(laserExtensionId);
港口邮递信息(…);

我能想到的唯一方法是创建一个Chrome扩展和一个Chrome应用程序,它们可以相互通信:

//要与之对话的扩展的ID。
var laserExtensionId=“abcdefghijklmnoabcdefhijklmnoabc”;
//提出一个简单的请求:
sendMessage(laserExtensionId,{getTargetData:true},
功能(响应){
if(targetRange(response.targetData))
sendMessage(laserExtensionId,{activateLasers:true});
});
//开始长时间对话:
var port=chrome.runtime.connect(laserExtensionId);
港口邮递信息(…);

另一种方法是制作一个可与设备和分机通信的接口


从体系结构的角度来看,这更有意义,但限制了您的部署选项,因为主机程序不能与Web应用商店中的扩展捆绑在一起。

另一种选择是制作一个与设备和扩展通信的主机


从体系结构的角度来看,这更有意义,但限制了您的部署选项,因为主机程序不能与Web应用商店中的扩展捆绑在一起。

谢谢,我使用了这种方法,它成功了!谢谢,我用了这个方法,很成功!