我开发了一个iPad应用,其中包含多个UIWebView,并使用以下HTML和JavaScript。由于iPad一次只能播放一个视频,因此我在特定的web视图获得焦点之前不加载视频。
这是通过在UIWebView上调用stringByEvaluatingJavaScriptFromString方法来实现的,将调用JS方法getFocus()发送到该方法中。同样,在不再需要Web视图时,我调用lostFocus()以卸载视频。这使得另一个UIWebView可以播放另一个视频。
到目前为止,一切都很好。一切都运行完美。除了一件事: 这会导致内存泄漏。每当查看时发生。
我尝试重新加载UIWebView(而不是使用JS卸载视频),但那并没有起作用。我也尝试了无数种不同的JavaScript变体、标签变体等。
<div id="videoDiv"></div>
<script type="text/javascript">
var movieDiv = document.getElementById('videoDiv'),
movieHtml = '<video id="video" src="../Documents/<%= VideoFileName %>" width="768" height="911"></video>';
var gotFocus = function () {
movieDiv.innerHTML = movieHtml;
var movie = document.getElementById('video');
movie.play();
movie.addEventListener('pause', function () {
movie.currentTime = 0;
movie.play();
}, false);
};
var lostFocus = function () {
movieDiv.innerHTML = '';
};
</script>