Android WebView 未正确加载

Adr*_*ith 5 android webview

我遇到了一些关于 Android 上的 WebViewClient 的问题。该网站在任何移动浏览器上都能完美运行。包括我为调试目的设置的 ChromeViewClient。

使用任何其他移动浏览器时,我正在加载的网站没有任何问题或错误。使用 Chrome 的检查器并选择设备,使用如上所述的本机 Android 浏览器,并在 iOS WebView 组件上进行测试以确保。

WebViewClient 呈现网站的“部分”。图像在一个页面上而不是在另一个页面上、无法单击的按钮、不起作用的滑块等等。我正在加载的网站是 JavaScript 和 HTML5 密集型的。我完全不知道如何进一步调试这个问题,是否有某些 WebViewClient 无法正确加载的 JavaScript 库?在尝试调试此问题时,您是否建议我实施任何其他方法?或者我是否错过了一些非常小的事情,会让我的头撞到桌子上?

这些是我们在网站上使用的 JS 文件:

  • bootstrap.min.js;
  • jquery.min.js;
  • swiper.jquery.min.js;
  • slideout.min.js;
  • owl.carousel.min.js

WebView 的代码:

this.webview = (WebView)findViewById(R.id.webView);
webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);

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

webview.setWebViewClient(new WebViewClient(){
    public boolean shouldOverrideUrlLoading(WebView view, String url){
        view.loadUrl(url);
        firstLoad = true;
        return true;
    }

    // when the page is finished loading
    public void onPageFinished(WebView view, String url){}

    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl){
        Toast.makeText(getBaseContext(), "Could Not load. " + description, Toast.LENGTH_SHORT).show();

        alertDialog.setTitle("Error");
        alertDialog.setMessage(description);
        alertDialog.setButton("OK", new DialogInterface.OnClickListener(){
            public void onClick(DialogInterface dialog, int which){
                return;
            }
        });

        alertDialog.show();
    }
});

webview.loadUrl("mywebsite.com");
Run Code Online (Sandbox Code Playgroud)

Adr*_*ith 7

我让它工作了setDomStorageEnabled(true);

使用本地存储时需要设置此项。