2012-01-16 11 views
0

私はこのコードを使用してwebView経由でiPadでYouTubeビデオを再生しています。ipaファイルをインストールするとアプリケーションが正常に動作しない

NSString *htmlString = [NSString stringWithFormat:@"<html>\ 
         <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 done = false;\ 
          var player;\ 
          function onYouTubePlayerAPIReady() {\ 
           player = new YT.Player('player', {\ 
           height: '%i',\ 
           width: '%i',\ 
           videoId: '%@',\ 
           events: {\ 
           'onReady': onPlayerReady,\ 
           'onStateChange': onPlayerStateChange\ 
           }\ 
           });\ 
          }\ 
          function onPlayerReady(evt) {\ 
           evt.target.playVideo();\ 
          }\ 
          function onPlayerStateChange(evt) {\ 
           if(evt.data==0)\ 
           {\ 
             window.location=\"http:\\end\";\ 
           }\ 
          }\ 
          function resizePlayer(width,height)\ 
          {\ 
            player.setSize(width, height);\ 
          }\ 
          </script>\ 
         </body>\ 
        </html>", 
         height,width, videoID]; 

問題は、xCode経由でアプリケーションをインストールしてもうまく動作しますが、ipaファイルを使用しているときに問題が発生することです。

+0

あなたのアプリが持っている問題は何ですか?あなたはそれが動作しないデバイスから任意のクラッシュやコンソールのログがありますか? – sergio

+0

私は空のビューを見ることができるので、webviewにhtmlをロードしたくないようです。 –

答えて

0

私の問題を引き起こした原因を発見しました。

ビデオが最後に到達したときに私のアプリケーションが瞬間を捕まえることを可能にするために、ページを別のURLにリダイレクトするためのJavaScriptコードを書いています。次に、WebViewProtocol - (BOOL)WebViewからメソッドを実装しました。(UIWebView *)shouldStartLoadWithREquest:(NSURLRequest *)navigationType:(UIWebViewNavigationType)navigationType。主なアイデアは、いくつかの特別なリンクに行きたがっているときに表示を閉じることでしたが、Xcodeからアプリを起動するときに何らかの未知の理由が生じていないという間違いが1つありました。

エラーとコード:エラーなし

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request  navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSString *url = [[request URL] absoluteString]; 
if ([url isEqualToString:@"http://youtube.com/end"]) 
{ 
    [self onCloseVideo]; 
    [self unsubscribe]; 
    return = NO; 
} 
//here on else I had to return YES but I didn't 
} 

はコード:

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request  navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSString *url = [[request URL] absoluteString]; 
    BOOL shouldStartRequest = YES; 
if ([url isEqualToString:@"http://youtube.com/end"]) 
{ 
    [self onCloseVideo]; 
    shouldStartRequest = NO; 
}    

return shouldStartRequest; 
} 
1

問題は、特定のデバイスとiOSのバージョン(UIWebViewの実装に微妙な違いがあります)、ipaファイルの使用以上のものがあります。

したがって、UIWebViewがHTMLスニペットを正しく解釈できない環境を試して再現することがあります。また、webView:didFailLoadWithError:を定義し、intercept javascript errors inside of UIWebViewsへの道を見て、それらをコンソールに表示することを忘れないでください。

これが役に立ちます。

関連する問題