使用WebView加载YouTube不起作用 我曾经在我的iOS应用程序中使用HTML字符串播放youtube,如下所示。

使用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

我过去常常将HTML加载为

[webView loadHTMLString:fileContents baseURL:[[NSBundle mainBundle]resourceURL]]

突然,它停止了工作。唯一可行的方法是将baseURL设置为http URL,如。我想知道要设置的正确baseURL是什么

 <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的内容。你知道这是不允许的吗?