如何从Chrome扩展程序中启动Chrome应用?

3
通常情况下,应用程序是从chrome://apps/或者Chrome apps按钮中打开的,但是如何从外部的Chrome扩展程序中打开呢?
我的扩展程序:
->manifest.json
->background.js

我的应用:

->manifest.json
->background.js

那么,如何从我的扩展程序中启动我的应用程序
2个回答

8
如果您拥有这两个项目,只需使用消息传递来自扩展程序的消息时打开应用程序窗口。这不会有权限警告,这将使用户感到不舒服,例如管理。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 })

好建议!如果这个方法有效,我建议楼主修改已接受的答案。 - Xan

4

文档中已有: chrome.management.launchApp

chrome.management.launchApp("YourAppsId", function(){
  if(chrome.runtime.lastError) console.error(chrome.runtime.lastError);
  else console.log("App launched");
});

您需要具备“管理”权限才能进行操作。
编辑:参见Daniel Herr的答案,提供了一种更少干扰的解决方案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接