2015-06-21 42 views
2

我使用manifest.json中的url_handlers在我访问example.com网站时启动我的Chrome应用程序。当我在chrome中创建新选项卡并在地址栏中写入example.com时 - 应用程序启动,但选项卡保持空白并且不加载我的页面。Chrome url_handlers:允许打开原始URL

是否有可能或选择启动应用程序与url_hanlers仍然加载我的网页?

+0

请问您可以在您的js中共享回调处理程序代码吗? – Rivero

+0

您可能正在处理网址,但您仍然需要将网站的内容加载到打开的选项卡中。 – Rivero

回答

1

API本身没有明确支持这样的事情。如果您坚持同时加载网页和同时启动应用程序,则可以更改应用程序以听取比example.com更具体的URL(或完全不同来源的URL),并强制该特定URL加载你的页面。这可能是一个虚拟图像,或者是一个<a>标签,您可以通过链接脚本或者甚至是<link rel="import" href="...">标签以编程方式点击标签(我希望后者能够正常工作,但是它会对URL中的URL进行额外限制)与您的主页相同 - 否则您可能需要处理CORS预防)。所以,一个工作的例子是:

  • 在您的应用程序的清单:

"url_handlers": { "launch-from-example-com": { "title": "...", "matches": [ "http://example.com/app-starter" ] } }

  • 在您网页的HTML:

<body> <a id="app-starter" href="http://example.com/app-starter"></a> ... <script> document.querySelector("#app-starter").click(); </script>

这是什么你需要?

相关问题