在Android上的WebView iFrame中显示Vimeo

时间:2013-08-30 20:30:53

标签: android iframe webview vimeo

我正在尝试创建一个应用程序,该应用程序显示带有嵌入式iframe的WebView,该iframe将显示Vimeo视频。当我加载WebView时,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#'&gt;北非和中东人民

没有人,但上帝

2013年5月14日一位年轻的叙利亚父亲分享了他的家人逃离叙利亚内战以及他们在约旦寻找新生活的斗争的故事。


只要我不将WebSettings LayoutAlgorithm更改为NARROW_COLUMNS,上面的建议似乎就可以正常工作。有谁知道为什么这不允许视频出现?第二个问题是有时当“页面”加载一切看起来很棒而有时候内容非常大并且图像偏离屏幕的一侧。它似乎可能与旋转和缩放或初始化有关,因为如果我旋转到横向并回到纵向,图像似乎自己纠正。见下图。

Good Image

Bad Image

1 个答案:

答案 0 :(得分:0)

我实际上找到了一种在几天前环顾四周时在网页浏览中播放vimeo视频的方法。您可以查看代码here。它利用this其他项目中的HTML5WebView。

但是HTML5WebView只是一个常规WebView的包装,专门调整播放视频。具体而言,您需要:

1-打开Javascript 2-实现一个扩展WebChromeClient并实现onShowCustomView和onHideCustomView方法的类。

我的问题现在与抓取视频全屏时看到的控件有关。如果您或其他人以某种方式设法做到这一点,我们将不胜感激。

纳尔逊