2016-06-30 11 views
1

Ich baue Beispiel App, Youtube in Webview laden, manchmal in bestimmten Videos die App abstürzt. Dies ist der lügt:Run Youtube auf WebView Absturz manchmal

diese Anwendung ist das automatische Layout-Engine aus einem Hintergrund-Thread modifiziert, die auf dem Motor Korruption und seltsame Abstürze führen können. Diese wird eine Ausnahme in einer zukünftigen Version verursachen.

Ich weiß, dass diese Hauptthread Problem ist, wenn der Spieler Start das Video abspielen, aber nicht Lösung haben, eine andere Sache, die dieses Problem zu lösen kann vielleicht helfen, wenn dies geschehen ist, wird die Webansicht Delegierten methud -shouldStartLoadWithRequest nicht genannt .. .

Das ist mein viewWillApear:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    _ytWebView.delegate = self; 
    _ytWebView.allowsLinkPreview = YES; 
    NSURL *url = [NSURL URLWithString:@"https://www.youtube.com"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 

    [_ytWebView loadRequest:request]; 

} 

Jede Hilfe würde geschätzt.

+0

Helper-Bibliothek für iOS-Entwickler suchen YouTube-Video-Wiedergabe in ihre Anwendungen über den Iframe-Player in einem UIWebView https://github.com/youtube/ hinzufügen youtube-ios-player-helper – rafaperez

Antwort

0

Versuchen Sie es auf dem Haupt-Thread ausgeführt wird statt:

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    _ytWebView.delegate = self; 
    _ytWebView.allowsLinkPreview = YES; 
    NSURL *url = [NSURL URLWithString:@"https://www.youtube.com"]; 
    NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
dispatch_async(dispatch_get_main_queue(), ^{ 
    [_ytWebView loadRequest:request]; 
}); 
} 
+0

Ich werde es versuchen, aber das Hauptproblem ist, dass nicht jeder Klick auf den You Tube Clips von der Webview Delegat fangen, haben Sie eine Idee? –

+0

und das ist immer noch Absturz: ( –

+0

Halten Sie an! Ich werde meine Antwort aktualisieren. – Dershowitz123