【问题标题】:How to launch a Chrome App from a Chrome Extension?如何从 Chrome 扩展程序启动 Chrome 应用程序?
【发布时间】:2014-06-13 05:30:54
【问题描述】:
应用程序通常从 chrome://apps/ 或 按钮 Chrome 应用程序 打开,但如何从外部 Chrome 扩展程序打开?
我的分机:
->manifest.json
->background.js
我的应用:
->manifest.json
->background.js
那么,如何从我的扩展程序启动我的应用?
【问题讨论】:
标签:
javascript
google-chrome
google-chrome-extension
google-chrome-app
【解决方案1】:
如果您同时拥有这两个项目,则可以在收到扩展程序的消息时使用消息传递来打开应用程序窗口。这没有权限警告会排斥像管理这样的用户。 https://developer.chrome.com/extensions/messaging
首先,将其添加到两个清单中:
"externally_connectable": { "ids": [ "idoftheotheritem" ] }
然后,在您的应用中监听消息并创建一个应用窗口:
chrome.runtime.onMessageExternal.addListener(function() {
chrome.app.window.create("app.html");
}
最后,从扩展发送:
chrome.runtime.sendMessage("idoftheapp", { launch: true })
【解决方案2】:
在文档中:chrome.management.launchApp
chrome.management.launchApp("YourAppsId", function(){
if(chrome.runtime.lastError) console.error(chrome.runtime.lastError);
else console.log("App launched");
});
您将需要"management" 权限。
编辑:请参阅 Daniel Herr 的 answer,了解侵入性较小的解决方案。