2014-10-03 60 views
1

我正在更新YouTube頻道的iOS應用。在之前的版本中(使用Xcode 5的iOS 7),我曾經在UIWebView中嵌入了youtube iFrame,並且一切都很好。但是,在使用Xcode 6的iOS 8中,每當我播放Youtube視頻並且它全屏顯示時,我的UIWebView約束就會中斷,UIWebView會在我的控制器中重新定位(通常會在屏幕上顯示10點)。UIWebView在全屏播放視頻時突破約束(Xcode 6)

我試着改變約束條件,但似乎並不重要,我設置了什麼約束,它最終會在玩家全屏時破壞。

這裏是用來嵌入YouTube的iframe html代碼:http://pastebin.com/z4zyq7Hs

謝謝:)

- (void)embedYouTube:(NSString *)urlString 
{ 
NSString *embedHTML =[NSString stringWithFormat:@"\ 
         <html><head>\ 
         <style type=\"text/css\">\ 
         body {\ 
         background-color: transparent;\ 
         color: blue;\ 
         }\ 
         </style>\ 
         </head><body style=\"margin:0\">\ 
         <iframe height=\"140\" width=\"325\"  src=\"http://www.youtube.com/embed/%@\"></iframe>\ 
         </body></html>",urlString]; 
[self.webView loadHTMLString:embedHTML baseURL:nil]; 

}

由於日誌是巨大的,我已經在引擎收錄粘貼它

+0

我正面臨同樣的問題。你有沒有設法解決它? – 2014-10-17 04:06:31

+0

同樣在這裏。有關它的任何消息? – entropid 2014-10-27 23:55:58

回答

1

我有同樣的問題。但是,我沒有遇到重定位問題(使用Xcode 6.1),只有一堆約束中斷日誌。

我測試了什麼仍然無法工作: - 刪除約束和setTranslatesAutoresizingMaskIntoConstraints爲YES所有的WebView及其子視圖 - 與WKWebview,更新,更快的UIWebView

我還考打位DailyMotion視頻和交換的UIWebView它也有同樣的問題,所以我懷疑這是UIWebview的MediaPlayer視圖上的問題。

0

嘗試這樣

- (void)embedYouTube:(NSString*)url frame:(CGRect)frame { 
    NSString* embedHTML = @"\ 
     <html><head>\ 
    <style type=\"text/css\">\ 
    body {\ 
    background-color: transparent;\ 
    color: white;\ 
    }\ 
    </style>\ 
    </head><body style=\"margin:0\">\ 
     <embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" \ 
    width=\"%0.0f\" height=\"%0.0f\"></embed>\ 
     </body></html>"; 
    NSString* html = [NSString stringWithFormat:embedHTML, url, frame.size.width, frame.size.height]; 
    if(videoView == nil) { 
     videoView = [[UIWebView alloc] initWithFrame:frame]; 
     [self.view addSubview:videoView]; 
    } 
    [videoView loadHTMLString:html baseURL:nil]; 
    } 
+0

仍然打破限制:( – 2014-10-24 15:37:40

0

我即將離開工作,所以我不得不快速輸入這個答案,我發現這個固定的

一種方法是刷新的緩存正在瀏覽的網頁,我沒有這個堅實的修復,但我想出了一個暫時的最後一週,這可以通過在HTML的標題創建一個鏈接到一個CSS文件來完成

<link id="refreshCache" rel="stylesheet" type="text/css" href="refresh.css">

,重要的是,你還可以創建一個refresh.css文件,你不過是大聲留空,

現在使用JavaScript或jQuery的,如果你已經擁有它聯繫起來,使用

.remove http://api.jquery.com/remove/

上的ID refreshCache,在頁面加載,刪除在標題鏈接到空文件加載頁面時...

這將會讓你的瀏覽器緩存,希望這有助於!