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

Arj*_*ini 14 java android webview android-webview

webview用来加载响应式网站,但它显示移动大小以外的宽度.

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

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

我也使用这些... <viewport>用于控制其演示的标签.

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

    settings.setUseWideViewPort(true);
    settings.setLoadWithOverviewMode(true); 
Run Code Online (Sandbox Code Playgroud)

另外我正在使用setInitialScale正确渲染webview.

    webview.setInitialScale((int) 1.0);
Run Code Online (Sandbox Code Playgroud)

但我得到的网站负载没有响应,因为根据大小...它显示宽度超出屏幕尺寸...随滚动

应用程序在Lollipop,Marshmallow等中运行良好.但是在Jellybean等中不起作用.但是Link在所有设备中都能与最新的Chrome配合使用,但是无法正常工作webview.

我也设定了......

 <meta name="viewport" content="width=device-width, initial-scale=1">
Run Code Online (Sandbox Code Playgroud)

截图

在此输入图像描述

Amy*_*Amy 9

试试这个:

WebView browser = (WebView) findViewById(R.id.webview);
browser.getSettings().setLoadWithOverviewMode(true);
browser.getSettings().setUseWideViewPort(true);
Run Code Online (Sandbox Code Playgroud)


小智 5

web.setInitialScale(1);
    web.getSettings().setLoadWithOverviewMode(true);
    web.getSettings().setUseWideViewPort(true);
Run Code Online (Sandbox Code Playgroud)

尝试使用此代码可能可以解决您的问题。


Nik*_*rad 5

也许你可以用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;");
}
Run Code Online (Sandbox Code Playgroud)

不久前它对我来说效果很好。希望这可以帮助...


moh*_*feh 5

您的网络视图 layout_width="match_parent" 是什么?

你也可以使用:`

setting.setBuiltInZoomControls(true);
webView.setWebViewClient(new WebViewClient());
webView.setWebChromeClient(new WebChromeClient());
Run Code Online (Sandbox Code Playgroud)

前:

settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
Run Code Online (Sandbox Code Playgroud)