2013-08-30 113 views
3

我正在嘗試創建一個應用程序,該應用程序顯示帶有嵌入式iframe的WebView並顯示Vimeo視頻。當我加載WebView時,iframe只是一個黑盒子,當我點擊它時不會顯示視頻或做任何事情。在WebView中顯示Vimeo Android上的iFrame

mWebView = (WebView)v.findViewById(R.id.webView); 
mWebView.getSettings().setAllowFileAccess(true); 
mWebView.getSettings().setBuiltInZoomControls(true); 
mWebView.getSettings().setSupportZoom(true); 
mWebView.getSettings().setUseWideViewPort(true); 
mWebView.getSettings().setLoadWithOverviewMode(true); 
mWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 

mWebView.getSettings().setSaveFormData(true); 
mWebView.getSettings().setJavaScriptEnabled(true); 

String data = new String("<html xmlns='http://www.w3.org/1999/xhtml' xmlns:fb='http://ogp.me/ns/fb#'><head>" + 
"<meta http-equiv='Content-Type' content='text/html; charset=UTF-8' />" + 
"<title>Northern African and Middle Eastern Peoples </title>" + 
"<link rel='stylesheet' href='./style.css' type='text/css' media='screen' /></head><body>" + 
"<div id='content'><div class='post'>" + 

"<iframe style='margin-top:10px; margin-bottom:10px;' src=http://player.vimeo.com/video/" + mRssVideoItem.getVimeoId() + "?title=0&byline=0&portrait=0' width='880' height='497' frameborder='0'>" + 
"</iframe><h1>" + mRssVideoItem.getTitle() + "</h1><div class='timestamp'>" + formattedDate + "</div>" + mRssVideoItem.getDescription() + "</div></div></body></html>"); 

mWebView.setWebViewClient(new WebViewClient(){ 
@Override 
public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    return false; 
} 
}); 
mWebView.loadDataWithBaseURL("file:///android_asset/.", data, "text/html", "UTF-8", null); 

我已經搜索了幾天,找不到任何有用的東西。

更新:我還在爲此而苦苦掙扎。我有幾個不同的事情發生,我不太明白。首先,我認爲我有Vimeo視頻使用下面的建議工作。不過,我今天回到了這個項目,剛剛看到一個黑匣子。另一個問題是視圖的「縮放」。有時當我加載視頻時,整個視圖出現在屏幕上。其他時候,它就像圖像放大了它,這些單詞比我想象的要大得多。當我改變設備的旋轉時,它似乎也會改變。下面是我使用loadDataWithBaseURL的HTML。

http://www.w3.org/1999/xhtml「的xmlns:FB =」 http://ogp.me/ns/fb#「>北非和中東人民

任何人,但神

5月14日,2013A年輕敘利亞的父親分享的故事,他的家人擺脫敘利亞內戰和他們在約旦尋找新生活的鬥爭。


的建議似乎以上,只要工作,我不改變WebSettings LayoutAlgorithm到NARROW_COLUMNS。有誰知道爲什麼這不會讓視頻顯示出來?第二個問題是,有時當「頁面」加載一切看起來很棒時,其他時候內容非常大並且圖像偏離屏幕一側。看起來它可能與旋轉和縮放或初始化有關,因爲如果我旋轉到橫向並返回到縱向,圖像似乎自行更正。見下面的圖片。

Good Image

Bad Image

回答

0

我居然找到了一種方法發揮VIMEO的視頻網頁視圖內,而環顧四周前幾天。您可以檢查代碼here。它使用來自this其他項目的HTML5WebView。

但HTML5WebView只是一個常規WebView的包裝,專門調整播放視頻。具體來說,你需要:的Javascript 2-

1-打開實現一個可擴展WebChromeClient一類,並實現onShowCustomView和onHideCustomView方法。

我的問題現在與抓住視頻全屏時看到的控件有關。如果不知何故,你或別人設法做到這一點,任何幫助將不勝感激。

尼爾森

+1

感謝您的建議。我似乎無法讓你引用的代碼也能工作。它會顯示初始頁面,但不會播放視頻。 – James

+0

我得到它的工作,但不得不使用一個活動(如在示例中),而不是一個片段。有沒有人用過這個或類似的片段? – James

+0

@James:我試圖在片段中顯示vimeo視頻..你有代碼嗎?我使用webview(當使用html5webview它顯示錯誤),有時視頻工作...有時不是.. – zacharia