我有一个使用 Sprite 表“播放视频”的网页。该页面针对移动设备进行了优化,因此可以加载到 Android 和 iOS WebViews 中。我想知道页面何时可见,所以只有在那之后我才能播放视频。我不希望用户在中途观看视频,因为 WebView 在呈现自身时滞后。
我可以看到一些开发人员可能会等到整个页面完成从页面中提取所有资源,然后再将其显示给用户。所以,我不希望“视频”在那之前开始。我不能依赖 window.onload,因为即使 WebView 不在屏幕上或不可见,该事件也会触发。
我如何从客户端完成此操作,最好是使用一些 JavaScript?
[编辑] 明确地说,我是在暗示我对 native WebView 没有任何控制权。您可以将网页加载到不在屏幕上的 WebView 中,然后推送 View 或稍后将其添加到屏幕布局中。我的问题是,当我的网页的 URL 加载到 WebView 中时,我无法判断 WebView 何时出现在屏幕上。
最佳答案
看看 Safari Web Content Guide .向下滚动到支持的事件表。我在想(或希望)pageshow
事件将完成您所希望的。还有 focus
事件。
看起来将这些事件用于移动 Safari 会很容易
<body onpageshow="onPageShow();">
我对 Android 不太熟悉,但我会很快研究一下。
编辑:onpageshow
解决方案在 Android 2.2 及更高版本中的工作方式应与在 iOS 4.0中的工作方式相同强>及以上。至于它是否按照您需要的方式工作,我不完全确定。让我知道!
关于javascript - 如何使用 JavaScript 确定 WebView 是否显示/在屏幕上/可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15151773/