从网站启动Chrome打包的Web应用程序

时间:2013-09-13 09:16:37

标签: google-chrome web-applications protocols handler google-chrome-app

我有一个Chrome Packaged Web应用程序(需要它才能访问串行端口),我希望能够在点击链接时从我的网站(包含一些数据)启动它该网站上的按钮。

如果它能够检测到用户是否没有运行chrome或者没有安装Web应用程序并且可以将它们引导到正确的位置,那就更好了......

有没有例子?这似乎是一个显而易见的事情,但我真的很难找到任何东西......

2 个答案:

答案 0 :(得分:7)

要启动应用,您可以使用url_handlers,这是最近的新功能landed(应该使Chrome 31成为可能)。您可以在URL中传递数据。

您可以检查是否已安装某个应用,如果没有,则使用Chrome网上应用店的inline install功能启动安装。

答案 1 :(得分:2)

找到了解决此问题的更好方法。

在@Vincent Scheib解决方案中,您必须将用户重定向到/ some / url,或者打开一个新窗口(实际上可以阻止弹出窗口)。所有这一切在UX方面都不太好。

我的解决方案是创建应用并配置externally_connectable。您必须通过将尝试打开该应用程序的网站的网址域。例如:

"externally_connectable": {
    "matches": ["*://developer.chrome.com/*"]
} 

然后,在后台脚本中的打包应用中,您可以执行以下操作:

chrome.runtime.onMessageExternal.addListener(function(message) {
      if(message.launch){ //This parameter will be passed in sendMessage method below
          chrome.app.window.create("main.html");
      }
});

最后,要触发应用程序打开,您必须使用打包的应用程序ID发送消息。例如:

chrome.runtime.sendMessage("mdoedhlejmepngilmgoenbhmipoclckb", { launch: true });