7

我有一个使用精灵表“播放视频”的网页。该页面针对移动设备进行了优化,因此可以加载到 Android 和 iOS WebViews 中。我想知道页面何时可见,所以只有在那之后我才能播放视频。我不希望用户在中途捕捉视频,因为 WebView 滞后于呈现自身。

我可以看到一些开发人员可能会等到整个页面完成从页面中提取所有资产之后才将其对用户可见。所以,我不希望“视频”在那之前开始。我不能依赖 window.onload,因为即使 WebView 不在屏幕上或不可见,该事件也会触发。

我怎样才能从客户端完成这个,最好使用一些 JavaScript?

[编辑] 明确地说,我的意思是我对原生 WebView 没有任何控制权。您可以将网页加载到不在屏幕上的 WebView 并推送视图或稍后将其添加到屏幕布局中。我的问题是,当我的网页 URL 加载到 WebView 中时,我无法判断 WebView 何时出现在屏幕上。

4

3 回答 3

3

查看Safari Web 内容指南。向下滚动到支持的事件表。我在想(或希望)这个pageshow活动会如你所愿。还有focus事件。

看起来将这些事件用于移动 Safari 就像

<body onpageshow="onPageShow();">

我对Android不太熟悉,但我会很快研究一下。

编辑:该解决方案在 Android 2.2onpageshow及更高版本中的工作方式应与在 iOS 4.0及更高版本中的工作方式相同。至于它是否按您需要的方式工作,我不完全确定。让我知道!

于 2013-03-05T00:52:52.180 回答
1

无法使用 JavaScript 控制 webview。如果现在更改应用程序的设计还为时不晚,使用原生 API 可以让您更好地控制 web 视图。

您可以在加载视频之前在网页中插入超时。可能值得一试。

于 2013-03-05T00:38:17.150 回答
1

您可以使用phonegap库:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    // Now safe to use the PhoneGap API
}

phonegap非常适合在webview中处理事件和更多操作。

于 2013-03-11T19:47:34.143 回答