Node.js 是否可以在节点webkit窗口中加载chrome扩展
我正在尝试使用创建node.js应用程序。是否可以在node webkit窗口中加载chrome扩展,并使其在chrome浏览器中显示Node.js 是否可以在节点webkit窗口中加载chrome扩展,node.js,google-chrome-extension,node-webkit,Node.js,Google Chrome Extension,Node Webkit,我正在尝试使用创建node.js应用程序。是否可以在node webkit窗口中加载chrome扩展,并使其在chrome浏览器中显示 我已经通过,但我只能理解,它可以加载NPAPI插件。有没有办法将chrome扩展转换为NPAPI插件?现在,chrome中的“--load extension”开关支持加载chrome扩展 以前,由于node webkit基于Chrome的内容层,没有扩展支持。正如Roger Wang在回答中提到的,node webkit目前不支持Chrome扩展或Chrome
我已经通过,但我只能理解,它可以加载NPAPI插件。有没有办法将chrome扩展转换为NPAPI插件?现在,chrome中的“--load extension”开关支持加载chrome扩展
以前,由于node webkit基于Chrome的内容层,没有扩展支持。正如Roger Wang在回答中提到的,node webkit目前不支持Chrome扩展或Chrome应用程序API。然而,我最初创建了一个Chrome应用程序,当谷歌显然更关注Chrome操作系统平台而不是Mac操作系统和Windows时,我们转向了node webkit 为了使通过Chrome应用程序到节点webkit的移植更容易,我创建了一些API存根,这些存根围绕着一些节点webkit、node.js和节点模块API,这些API做一些与Chrome API相同的事情 chrome.alarms.*API的存根示例: 下面是一个删除chrome.alarms.*的示例,这样它至少不会抛出错误并以静默方式失败:
window.chrome = {
alarms: {
clear: function(name) {
console.warn("not implemented.");
},
clearAll: function() {
console.warn("not implemented.");
},
create: function(name, obj) {
console.warn("not implemented.");
},
onAlarm: {
addListener: function(callback) {
console.warn("not implemented.");
return;
var alarm = {
name: ""
};
callback();
}
}
}
清单和后台页面访问的存根示例:
下面是一个使用chrome.runtime.getManifest获取package.json清单的示例,以及通过chrome.runtime.getBackgroundPage访问节点webkit中的后台页面的示例,假设后台页面打开窗口,其父页面是后台页面:
chrome.runtime: {
getManifest: function() {
return typeof(require) !== "undefined" ? require("../package.json") : {};
},
getBackgroundPage: function(callback) {
var backgroundPage = {
postMessage: function(message, origin) {
if(window.opener != null)
window.opener.postMessage(message, origin);
else
window.postMessage(message, origin);
}
};
callback(backgroundPage);
},
有了这个解决方案,我们或多或少只是在应用程序中添加了一个package.json文件,添加到API存根中,并在第1天运行了一个应用程序
(免责声明:这是我对node webkit的开源贡献)
你可以找到那个
出于演示目的,GitHub存储库中的代码实际上作为Chrome应用程序和node webkit应用程序运行。谢谢!!有没有办法将chrome扩展转换为NPAPI插件?根据node webkit文档,它可以加载这种插件。@pc1500你有什么证据支持上游将其移动到内容层的说法吗?我不是在推断错误,但我很好奇,所以我可以遵循它。你有没有找到一种方法,可以用chrome应用程序而不是扩展程序来完成。我只是想要一种方法来访问随chrome扩展/应用程序附带的api…还有一种方法可以满足您的要求,比如通过插件使用扩展或插件…pc1500我想我已经发过电子邮件了you@MuhammadUmer,如果您仍在寻找解决方案,请查看。@Jagdeep-2017年有什么好运气吗?您是如何解决此问题的?文档共享、屏幕共享扩展是否与您使用最新节点webkit的解决方案配合使用?@yumyum我们在节点webkit应用程序中进行屏幕共享和文件共享。这是可能的,但我们不使用存根。我们只是使用了现有的API和废弃的Chrome应用程序。那么USB和串口呢?@Pier-如果有一种通过节点webkit使用USB和串口的原生方式,那么你可以将其包装在存根中。目前,我还没有为这些组件编写存根,所以请随意使用其他存根作为示例。希望这有帮助!似乎有一些C++节点模块来完成这一操作,但是在NWJS中使用它们需要重新编译。