带有IFRAME android的WebView

时间:2012-01-21 17:55:28

标签: android iframe webview load

我想在<IFRAME>内加载HTML WebView,但我不知道为什么,它无法这样做。

我使用以下代码加载<IFRAME>

webView.loadData("<iframe src=\"http://www.google.com\"></iframe>", "text/html",
                "utf-8");

这是我尝试过的。

WebSettings webViewSettings = webView.getSettings();
webViewSettings.setJavaScriptCanOpenWindowsAutomatically(true);
webViewSettings.setJavaScriptEnabled(true);
webViewSettings.setPluginsEnabled(true);
webViewSettings.setBuiltInZoomControls(true);
webViewSettings.setPluginState(PluginState.ON);

我已经提到了互联网许可:

<uses-permission android:name="android.permission.INTERNET" />

我还尝试设置WebViewClientshouldOverrideUrlLoading始终返回false。

但它只是不起作用。

我已尝试使用不同的网站,即google.com以外的网站。

我正在测试这个,三星Nexus S运行ICS 4.0.3

2 个答案:

答案 0 :(得分:8)

这就是它的成功方法。

我注意到Log cat正在扔我

  

WebKit权限问题:EventHub.removeMessages(int what = 107)是   在设置WebViewCore之前不支持

要解决此问题,我必须在Manifest的android:hardwareAccelerated="true"标记中添加<application>

我在ICS上遇到过这种情况,发现在Honeycomb设备之后也会出现同样的问题。

希望这会有所帮助。

答案 1 :(得分:7)

尝试使用以下代码:

webView.setInitialScale(1);
webView.setWebChromeClient(new WebChromeClient());
webView.getSettings().setAllowFileAccess(true);
webView.getSettings().setPluginState(WebSettings.PluginState.ON);
webView.getSettings().setPluginState(WebSettings.PluginState.ON_DEMAND);
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
DisplayMetrics displaymetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels;
int width = displaymetrics.widthPixels;

Log.e(SimpleBillsConstants.SIMPLE_BILLS, width + "-" + height);

String data_html = "<!DOCTYPE html><html> <head> <meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"target-densitydpi=high-dpi\" /> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"> <link rel=\"stylesheet\" media=\"screen and (-webkit-device-pixel-ratio:1.5)\" href=\"hdpi.css\" /></head> <body style=\"background:black;margin:0 0 0 0; padding:0 0 0 0;\"> <iframe style=\"background:black;\" width=' "+width+"' height='"+height+"' src=\""+VIDEO_URL+"\" frameborder=\"0\"></iframe> </body> </html> ";

webView.loadDataWithBaseURL("http://vimeo.com", data_html, "text/html", "UTF-8", null);