Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用JavaScript确定WebView是否显示/在屏幕上/可见_Javascript_Android_Ios - Fatal编程技术网

如何使用JavaScript确定WebView是否显示/在屏幕上/可见

如何使用JavaScript确定WebView是否显示/在屏幕上/可见,javascript,android,ios,Javascript,Android,Ios,我有一个网页,使用精灵表“播放视频”。该页面经过移动优化,因此可以加载到Android和iOS网络视图中。我想知道的是,网页何时可见,这样我才能播放视频。我不想让用户看到视频的中流,因为WebView在显示自己方面滞后 我可以看到,一些开发人员可能会等到整个页面完成从页面中提取所有资产后,才将其显示给用户。所以,我不希望“视频”在那之前开始。我不能依赖window.onload,因为即使WebView不在屏幕上或不可见,也会触发该事件 我如何从客户端实现这一点,最好使用一些JavaScript

我有一个网页,使用精灵表“播放视频”。该页面经过移动优化,因此可以加载到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视图时显示/刷新页面。感谢您的回答!我还没有机会测试,但我会在测试后报告结果。再次感谢