如何使用JavaScript确定WebView是否显示/在屏幕上/可见
我有一个网页,使用精灵表“播放视频”。该页面经过移动优化,因此可以加载到Android和iOS网络视图中。我想知道的是,网页何时可见,这样我才能播放视频。我不想让用户看到视频的中流,因为WebView在显示自己方面滞后 我可以看到,一些开发人员可能会等到整个页面完成从页面中提取所有资产后,才将其显示给用户。所以,我不希望“视频”在那之前开始。我不能依赖window.onload,因为即使WebView不在屏幕上或不可见,也会触发该事件 我如何从客户端实现这一点,最好使用一些JavaScript如何使用JavaScript确定WebView是否显示/在屏幕上/可见,javascript,android,ios,Javascript,Android,Ios,我有一个网页,使用精灵表“播放视频”。该页面经过移动优化,因此可以加载到Android和iOS网络视图中。我想知道的是,网页何时可见,这样我才能播放视频。我不想让用户看到视频的中流,因为WebView在显示自己方面滞后 我可以看到,一些开发人员可能会等到整个页面完成从页面中提取所有资产后,才将其显示给用户。所以,我不希望“视频”在那之前开始。我不能依赖window.onload,因为即使WebView不在屏幕上或不可见,也会触发该事件 我如何从客户端实现这一点,最好使用一些JavaScript
[Edit]说得很清楚,我的意思是我对本机WebView没有任何控制权。您可以将网页加载到不在屏幕上的WebView中,并在以后推送该视图或将其添加到屏幕布局中。我的问题是,当我的网页的URL加载到WebView时,我无法判断WebView何时出现在屏幕上。使用JavaScript无法控制WebView。如果现在更改应用程序的设计还不算晚,那么使用本机API可以让您更好地控制webview 您可以在加载视频之前在网页中插入超时。这可能值得一试。看一看。向下滚动到支持的事件表。我在想(或希望)
pageshow
活动将实现您的期望。还有focus
事件
看起来在移动Safari中使用这些事件将非常简单
<body onpageshow="onPageShow();">
我对Android不太熟悉,但我会很快研究它
编辑:onpageshow解决方案在Android2.2及以上版本中的工作方式应与在iOS4.0及以上版本中的工作方式相同。至于它是否按照你需要的方式工作,我不完全确定。让我知道 您可以使用库:
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
// Now safe to use the PhoneGap API
}
phonegap
非常适合处理事件和webview中的更多操作。您是否尝试过jQuery$(document).ready(function(){//code for show video});作为一个简单的修复,我只需要使用setTimeout()
Hmm为动画添加一点延迟,我根本不使用jQuery。仅为ready
函数包含该库是一个好主意吗?普通的ol'JavaScript等价物是什么?@kennypu如果在用户操作之前不显示WebView怎么办?我无法预测…我以为网页是在webview显示时加载的?如果没有,你可以这样做;显示Web视图时显示/刷新页面。感谢您的回答!我还没有机会测试,但我会在测试后报告结果。再次感谢