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

标签 javascript android ios

我有一个使用 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/

相关文章:

iPhone 显示与模拟器不同

ios - Objective C IOS prepareForSegue 如何获取分配给下一个 View Controller 按钮的 int 变量

javascript - Angular 路线没有像我想象的那样工作

java - Android Studio Google Glass 模拟器中未检测到点击/滑动

objective-c - 在插入符号位置将文本插入 UITextField

android 对话框重力

android - 自定义 View 'CustomAutoCompleteTextView' 已调用 setOnTouchListener 但未覆盖 performClick

javascript - 如何使用 do while 循环将字符串多次插入数组?

javascript - Observable.of 转异步

javascript - 无法设置元素的innerHTML