5

我正在为 Chrome 编写一个打包的应用程序,它有一个 webview 标签,我在其中加载我的网站。

网站 JavaScript 代码是否可以检测到它已加载到 web 视图中?navigator.userAgent 属性没有任何线索。

4

2 回答 2

3

除了 Jivings 提到的方法之外的其他方法:

  • 在 webview 中加载一个稍微不同的 URL,例如http://example.com?in_webview=1,并将其反映在站点提供的 JavaScript 中。
  • 相同的想法,但使用#fragment。我不确定#fragment 是否能正常工作,但如果能正常工作,那就太好了,因为服务器不会被奇怪的查询参数弄糊涂。
  • 使用嵌入器,将一个脚本插入到 webview 的 DOM 中,它会做一些不同的事情。
于 2013-06-23T00:15:13.850 回答
0

当 webview 完成加载后,向里面的页面触发一个事件:

webview.addEventListener("loadstop", function () {
   contentWindow.postMessage('Hello from Chrome App!', targetOrigin)
});

您的内容页面可以使用常规 postMessage API 收听此消息。如果它收到一条消息,您将知道它已加载到 web 视图中。

于 2013-06-22T18:37:41.183 回答