解决cordova webview被放大问题

webview加载页面时有时会被放大,所以初始化时要将比例设置为1

以下是常见的初始化代码

  WebSettings settings = webView.getSettings();
        settings.setUseWideViewPort(true);
        settings.setLoadWithOverviewMode(true);
        settings.setDomStorageEnabled(true);
        settings.setDefaultTextEncodingName("UTF-8");
        settings.setAllowContentAccess(true); // 是否可访问Content Provider的资源,默认值 true
        settings.setAllowFileAccess(true);    // 是否可访问本地文件,默认值 true
        settings.setJavaScriptEnabled(true);
        settings.setCacheMode(WebSettings.LOAD_DEFAULT);
        // 支持缩放
        settings.setSupportZoom(true);
        settings.setBuiltInZoomControls(true); //设置内置的缩放控件。
        settings.setDisplayZoomControls(false); //隐藏原生的缩放控件`
        settings.setNeedInitialFocus(false);
断网后,一般要求是下拉刷新或者点重新加载按钮刷新,这时webview就会获取焦点并放大。
为了防止页面在未有任何手动操作的情况下放大,这里要重新设置为初始比例。
 webView.setOnFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean hasFocus) {
                if (hasFocus) {
                    webView.setInitialScale(100);
                }
            }
        });

当然了,如果就是要页面放大,并且有一个放大的比例要求,在以上两个位置-初始化和刷新获取焦点-的时候,设置需要的放大比例。

你可能感兴趣的:(android应用)