6

我有一个建立在 PrimeFaces 之上的网站。我的问题是 WebView 上的内容和图像看起来比 Chrome 上的大。我应该怎么做才能使 WebView 上的渲染与 Chrome 上的渲染相同?

缩放似乎没有帮助,因为该网站具有响应式设计。我也尝试过wrap_content而不是fill_parent没有成功。

更新 1:以下内容无效。我已将它们从下面的代码中排除以使其最小化。

  • WebViewClient
  • ChromeViewClient
  • setLoadWithOverviewMode(true)
  • setUseWideViewPort(true)

更新 2setInitialScale()没有效果。

我的活动.java

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    webView = (WebView) findViewById(R.id.web_engine);
    webView.setWebViewClient(new WebViewClient());
    webView.getSettings().setJavaScriptEnabled(true);
    if (savedInstanceState == null) {
        webView.loadUrl("http://www.primefaces.org/showcase/mobile/index.xhtml");
    }
}

主要的.xml

<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android"
            a:layout_width="fill_parent"
            a:layout_height="fill_parent"
            a:background="#ffffff"
            a:orientation="vertical" >

<WebView a:id="@+id/web_engine"
         a:layout_width="fill_parent"
         a:layout_height="fill_parent"
/>

网络视图 铬合金

4

5 回答 5

4

我有一个类似的问题,问题是系统字体大小(设置 -> 显示 -> 字体大小)影响了 WebView 中的字体大小,但不影响浏览器中的字体大小。

当我使用cordova时,我用一个cordova插件解决了这个问题,看到这个答案

查看插件代码,它在 Android 中执行以下操作来重置字体大小:

mWebView.getSettings().setTextZoom(100);

或(前 ICS):

mWebView.getSettings().setTextSize(WebSettings.TextSize.NORMAL);
于 2015-03-24T14:19:27.043 回答
4

尝试:

webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING);
webView.getSettings().setSupportZoom(true);

这里提到:http: //developer.android.com/guide/webapps/migrating.html

更具体地说:http: //developer.android.com/reference/android/webkit/WebSettings.LayoutAlgorithm.html#TEXT_AUTOSIZING

完整代码在这里:

mWebView = (WebView) mLayoutMain.findViewById(R.id.webview_main);
mWebView.setWebViewClient(new WebViewClient(){
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return false;
    }
});
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setBuiltInZoomControls(true);
mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.TEXT_AUTOSIZING);
mWebView.getSettings().setSupportZoom(true);
mWebView.loadUrl("http://www.primefaces.org/showcase/mobile/index.xhtml");
于 2014-08-01T20:00:06.063 回答
2

首先,我会建议您在不同的移动浏览器上测试您的应用程序。如果同样的问题,请参见下文:

浏览器和您的应用程序之间的差异可能是因为您在将 setUseWideViewPort WebSetting 设置为 true 时犯了错误。

检查以下链接:

  1. 为什么我的字体大小在 android webview 对象中看起来比在 android 浏览器中查看时大得多?

  2. 针对不同屏幕和操作系统版本的 Android WebView 文本缩放

  3. WebView 文本大小

于 2014-08-07T13:54:23.980 回答
1

我在移动 chrome 和应用程序中都尝试了http://www.primefaces.org/showcase/mobile/index.xhtml,它们看起来都很相似

申请内

在此处输入图像描述

在 Chrome 中

在此处输入图像描述

我没有看到任何问题。您是否有可能在某些特定的 android 版本中有所不同?我在 4.4.4 上验证了它

于 2014-08-07T18:25:46.240 回答
0

让字体大小与 chrome 或网站匹配,无需任何调整大小即可webSettings.setMinimumFontSize(1);

亲切的问候拉敏

于 2017-12-24T10:18:38.263 回答