使用ipa文件安装时,应用程序无法正常运行

时间:2012-01-16 09:56:32

标签: objective-c ios youtube

我正在使用此代码通过webView在iPad上播放youtube视频。

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文件时,它没有。

2 个答案:

答案 0 :(得分:1)

您遇到的问题可能取决于特定设备和iOS版本(UIWebView实施中存在细微差别),而不是使用ipa文件。

因此,您可能会尝试重现UIWebView无法正确解释HTML片段的环境。另外,不要忘记定义webView:didFailLoadWithError:并查看intercept javascript errors inside of UIWebViews的方法并在控制台上显示它们。

希望这有帮助。

答案 1 :(得分:0)

我找到了导致我问题的原因。

为了让我的应用程序抓住视频到达结束的时刻,我编写了Javascript代码以将页面重定向到另一个URL。然后我从WebViewProtocol实现了方法 - (BOOL)webView:(UIWebView *)shouldStartLoadWithREquest:(NSURLRequest *)navigationType:(UIWebViewNavigationType)navigationType。主要的想法是当它试图去一些特殊链接时关闭视图,但是我犯了一个错误,当我从XCode启动我的应用程序时,由于一些未知的原因没有提出。

错误代码:

-(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;
}