2016-03-19 12 views
2

ich folgenden Code bin mit youtube Videos:Youtube auf dem Gerät ausfällt, funktioniert auf Simulator

webViewVideo.hidden = false 

webViewVideo.allowsInlineMediaPlayback = true 
webViewVideo.mediaPlaybackRequiresUserAction = false 

let youtubeIfarme = "<html><body><iframe src=\"http://www.youtube.com/embed/\(youtubeId)?playsinline=1\" width=\"\(CGRectGetWidth(loadedView.frame) - CGFloat(16))\" height=\"\(CGRectGetHeight(webViewVideo.frame))\" frameborder=\"0\" allowfullscreen></iframe></body></html>" 

webViewVideo.loadHTMLString(youtubeIfarme, baseURL: NSBundle.mainBundle().bundleURL) 

Welchen Code völlig in Ordnung, auf Simulator arbeitet zu laden, aber auf reales Gerät es nicht zu. I definiert folgenden als App Transportsicherheit:

transport security

Merkwürdige ist, dass ich heruntergeladen iOS Helper library aber das Ergebnis ist das gleiche. Darüber hinaus werden Delegiertenmethoden nie aufgerufen. Auf ihrer GitHub-Seite haben sie viele offene Probleme, also denke ich, dass das nicht meine beste Wahl sein wird.

Jede Hilfe wird sehr geschätzt.

EDIT

ich zu debuggen geschafft, wie meine HTML-Seite innerhalb UIWebView auf Simulator sieht (indem es durch Safari verbindet Entwickeln):

<html><head></head><body><iframe src="http://www.youtube.com/embed/KIiUqfxFttM?playsinline=1" width="359.0" height="350.0" frameborder="0" allowfullscreen=""></iframe></body></html> 

Antwort

0

Ich habe werde meine eigene Frage beantworten. Das Problem war, dass ich das Video innerhalb UITableViewHeader durch die Umsetzung der benötigten Delegierten zu zeigen, verwendet:

viewForHeaderInSection

heightForHeaderInSection

Ich habe ich Wert nur einen Abschnitt so zurück es nur, wenn section == 0 ich weiß nicht, was genau verursacht dieses Problem, aber wahrscheinlich führt mehrere Aufruf der Methode dazu. Was ich getan habe, war einfach die Initialisierung von UIWebView innerhalb viewWillAppear zu verschieben und es als tableViewHeaderView zu setzen. Also ich stelle es jetzt nur einmal ein und das problem ist weg:

override func viewWillAppear(animated: Bool) { 
    super.viewWillAppear(animated) 

    dispatch_once(&token) { 
     self.initHeader() 
    } 
} 
Verwandte Themen