Android webview,响应式网页在某些设备中未正确显示

时间:2015-10-15 15:33:06

标签: android webview

我开发了一个带有webview的应用程序,可在用户请求时显示一些链接,而无需打开外部Web浏览器。

问题是这些链接在本机浏览器中正确显示,某些SDK版本的webview,而不是所有这些链接

例如,它在5.1.1中是正确的,但在4.4.4中是错误的

这是对的(索尼Z1和5.1.1):

enter image description here

这是错误的(Nexus 5和4.4.4):

enter image description here

这是我的代码:

@SuppressLint("SetJavaScriptEnabled")
public class InAppBrowserActivity extends Activity {

    public static final String EXTRA_URL = "URL";
    public static final int RESULT_FAILURE = 101;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        WebView webview = new WebView(this);
        webview.setWebViewClient(new MyViewClient());
        webview.getSettings().setJavaScriptEnabled(true);
        setContentView(webview);

        final String url = getIntent().getStringExtra(EXTRA_URL);
        Log.d(getClass().getName(), "Trying to load url " + url);
        webview.loadUrl(url);
    }

    public void closeActivity(int result){
        setResult(result);
        finish();
    }

    public class MyViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }

        @Override
        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
           InAppBrowserActivity.this.closeActivity(RESULT_FAILURE);
        }
    }
}

我该怎么办?

1 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

    WebView webView = (WebView) findViewById(R.id.webview);
    webView .getSettings().setLoadWithOverviewMode(true);
    webView .getSettings().setUseWideViewPort(true);