使用WebView加载YouTube不起作用 我曾经在我的iOS应用程序中使用HTML字符串播放youtube,如下所示。
我过去常常将HTML加载为 [webView loadHTMLString:fileContents baseURL:[[NSBundle mainBundle]resourceURL]] 突然,它停止了工作。唯一可行的方法是将baseURL设置为http URL,如。我想知道要设置的正确baseURL是什么使用WebView加载YouTube不起作用 我曾经在我的iOS应用程序中使用HTML字符串播放youtube,如下所示。,youtube,youtube-api,Youtube,Youtube Api,我过去常常将HTML加载为 [webView loadHTMLString:fileContents baseURL:[[NSBundle mainBundle]resourceURL]] 突然,它停止了工作。唯一可行的方法是将baseURL设置为http URL,如。我想知道要设置的正确baseURL是什么 <div id='container'> <div id="child"> <div id="player"></div
<div id='container'>
<div id="child">
<div id="player"></div>
</div>
</div>
<script>
var tag = document.createElement('script');
tag.src = "https://www.youtube.com/iframe_api";
var firstScriptTag = document.getElementsByTagName('script')[0];
firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var player;
function onYouTubeIframeAPIReady() {
player = new YT.Player('player', {
width: '%@',
height: '%@',
videoId: '%@',
playerVars: {
origin: 'file://',
showinfo: 0,
controls: 0,
playsinline: 1,
autoplay: 1
},
events: {
'onReady': onPlayerReady,
'onStateChange': onPlayerStateChange,
'onPlaybackQualityChange': onPlayerPlaybackQualityChange,
'onPlaybackRateChange': onPlayerPlaybackRateChange,
'onError': onPlayerError,
'onApiChange': onPlayerApiChange
}
});
}
// Event functions
function onPlayerReady(event) {
onEvent('ready', null);
}
function onPlayerStateChange(event) {
onEvent('stateChange', playerStateToString(event.data));
}
function onPlayerPlaybackQualityChange(event) {
onEvent('playbackQuality', event.data);
}
function onPlayerPlaybackRateChange(event) {
onEvent('playbackRateChange', event.data);
}
function onPlayerError(event) {
onEvent('error', event.data);
}
function onPlayerApiChange(event) {
onEvent('apiChange', event.data);
}
function onEvent(eventName, eventData) {
var url = "ytplayer://event/" + eventName;
if (eventData != null) {
url += ('/' + eventData);
}
document.location = url;
}
// Helpers
function playerStateToString(playerState) {
var result = null;
switch (playerState) {
case -1:
result = "unstarted";
break;
case YT.PlayerState.ENDED:
result = "ended";
break;
case YT.PlayerState.PLAYING:
result = "playing";
break;
case YT.PlayerState.PAUSED:
result = "paused";
break;
case YT.PlayerState.BUFFERING:
result = "buffering";
break;
case YT.PlayerState.CUED:
result = "cued";
break;
}
return result;
}
</script>
我使用about:blank。此值不能为空或无。谢谢您的回复。我使用了[[NSBundle mainBundle]resourceURL]],它将在真实设备上转换为类似/var/Applications/App%20Name的内容。你知道这是不允许的吗?