我正在使用cordova进行iphone应用程序开发。我正在尝试播放 youtube 视频InAppBrowser
。在我的场景中,我有一堆视频缩略图,基本上这些是 youtube 视频。当我们点击它时,它需要打开一个 html 页面,其中包含一个 youtube 播放器Phonegap
InAppBrowser
,因为我已经写过,
var ref = null;
function openVideo(Id)
{
try {
ref = window.open('video.html?id='+Id,'_blank','location=no');
ref.addEventListener('loadstop', LoadStop);
ref.addEventListener('exit', Close);
}
catch (err)
{
alert(err);
}
}
function LoadStop(event) {
//some code
}
function Close(event) {
ref.removeEventListener('loadstop', LoadStop);
ref.removeEventListener('exit', Close);
}
我的 video.html 可以有以下代码,
<!DOCTYPE html>
<html>
<head>
<style>
body {
margin: 0px 0px 0px 0px;
}
</style>
</head>
<body>
<div id="player"></div>
<script>
var tag = document.createElement('script');
tag.src = "http://www.youtube.com/player_api";
var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubePlayerAPIReady()
{
player = new YT.Player('player',
{ videoId: 'mQGTXhqVmCQ',
playerVars: { 'html5': 1},
events: { 'onReady': onPlayerReady,'onStateChange':onPlayerStateChange }
});
}
function onPlayerReady(event) {
event.target.playVideo();
}
function onPlayerStateChange(event) {
if (event.data == YT.PlayerState.PLAYING) {
//needs to close in app browser here
window.close();
}
}
function stopVideo() {
player.stopVideo();
}
</script>
</body>
</html>
这里我附上截图,
这里我真正面临的问题是,
1、点击缩略图在InAppBroser中打开video.html
2,第一个视频加载和视频在默认的 iphone 浏览器中播放。看到视频后,用户将单击完成按钮返回应用程序。
3,但他在暂停按钮和完成按钮上看到带有 youtube 播放器的 video.html 页面返回应用程序。
这意味着他需要在默认播放器中单击一个完成按钮,在InAppBrowser
. 这将成为用户界面错误。所以当他点击播放器中的完成按钮时,我需要支持用户使用应用程序。为此,我需要能够在InAppBrowser
播放 youtube 视频时关闭窗口,但我无法获得参考,InAppBrowser
因为两者都在不同的页面中。我在 onstatechanged 方法 youtube 播放器中尝试了 window.close()。但这对我没有帮助。InAppBrowser
那么当youtube视频播放时我怎么能关闭窗口。请指导我。