响应式网站显示在移动宽度(不响应)的Web视图中以其他方式在Chrome中看起来不错

时间:2016-08-12 07:15:22

标签: java android webview android-webview

我使用webview加载响应式网站,但它显示移动尺寸以外的宽度。

我在移动Chrome浏览器中打开该链接,看起来不错......

我的意思是说宽度不适合手机的屏幕尺寸;它显示出宽度。

我也在使用这些... <viewport>标签来控制其演示文稿。

    WebSettings settings = webview.getSettings();
    settings.setJavaScriptEnabled(true);

    settings.setUseWideViewPort(true);
    settings.setLoadWithOverviewMode(true); 

此外,我正在使用setInitialScale正确渲染webview。

    webview.setInitialScale((int) 1.0);

但是根据尺寸我的网站加载不响应...它显示宽度超出屏幕尺寸...附带滚动

应用程序在Lollipop,Marshmallow等中运行良好但在Jellybean等中不起作用。 但是链接适用于所有设备中的最新chrome,但在webview中无效。

我也设置了这个......

 <meta name="viewport" content="width=device-width, initial-scale=1">
  

截图

enter image description here

6 个答案:

答案 0 :(得分:8)

试试这个:

fun <- function(text, pVal) {
  y <- floor(log10(pVal))
  x <- pVal / 10^y
  bquote(.(text)*":" ~ .(x) %.% 10 ^ .(y))
}

plot.new()
text(0.5,0.7,fun("P value", 0.4))
text(0.5, 0.3, fun("P value", signif(1/pi, 1)))

答案 1 :(得分:4)

web.setInitialScale(1);
    web.getSettings().setLoadWithOverviewMode(true);
    web.getSettings().setUseWideViewPort(true);

试试这段代码可能会解决您的问题。

答案 2 :(得分:3)

您可以使用onPageFinished()方法

来实现
@Override
public void onPageFinished(android.webkit.WebView view, String url)
{
    super.onPageFinished(view, url);

    WindowManager manager = (WindowManager) getContext().getSystemService(Context.WINDOW_SERVICE);

    DisplayMetrics metrics = new DisplayMetrics();
    manager.getDefaultDisplay().getMetrics(metrics);

    metrics.widthPixels /= metrics.density;

    wb.loadUrl("javascript:document.body.style.zoom = "+String.valueOf(scale)+";");

OR//
    wb.loadUrl("javascript:var scale = " + metrics.widthPixels + " / document.body.scrollWidth; document.body.style.zoom = scale;");
}
很久以前,它和我一起工作得很好。 希望这会有所帮助...

答案 3 :(得分:3)

是您的网络视图layout_width =“match_parent”?

你也可以使用:`

setting.setBuiltInZoomControls(true);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());

之前:

settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);

答案 4 :(得分:2)

webView = (WebView) findViewById(R.id.noticiasWebView);
webView.setInitialScale(1);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setUseWideViewPort(true);
webView.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webView.setScrollbarFadingEnabled(false);
webView.loadUrl("http://www.resource.com.br/");

答案 5 :(得分:0)

启用DOM应该可以帮助我

webView.getSettings().setDomStorageEnabled(true);