0

I'm trying to save a page html code into a string, then load it to a webview, I managed to get full HTML code successfully, however when I try to load it into webview, somehow it webview remove all content in

Here is how I initialized webView:

WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setUseWideViewPort(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setBuiltInZoomControls(true);
webView.getSettings().setDomStorageEnabled(true);
webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
webView.getSettings().setGeolocationEnabled(true);
webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
webView.setWebViewClient(new MyWebViewClient());

Webclient:

private  class MyWebViewClient extends WebViewClient {
        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            siteAddressBar.setText(url);
            view.loadUrl(url);
            Site = url;
            return true;
        }
        @RequiresApi(api = Build.VERSION_CODES.KITKAT)
        @Override
        public void onPageFinished(WebView view, String url) {
            //view.loadUrl();
            view.evaluateJavascript("(function() {return document.getElementsByTagName('html')[0].outerHTML;})();", new ValueCallback<String>() {
                @Override
                public void onReceiveValue(final String value) {
                    JsonReader reader = new JsonReader(new StringReader(value));
                    reader.setLenient(true);
                    try {
                        if (reader.peek() == JsonToken.STRING) {
                            String domStr = reader.nextString();
                            if (domStr != null) {
                                htmlCode = domStr;
                                Log.e("Stonmrigal1",domStr);
                            }
                        }
                    } catch (IOException e) {
                        // handle exception
                    } finally {
                        //IoUtil.close(reader);
                    }
                }
            });
        }
    }

and Then tried to load html like this:

webView.loadData(htmlCode,  "text/html; charset=utf-8", "UTF-8");

I get response like this:

    <html class="js backgroundsize borderimage csstransitions fontface svg details progressbar meter no-mathml cors xxsmallview wb-enable" dir="ltr" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head></head>
<body></body>
</html>
dxtr
  • 685
  • 1
  • 7
  • 16

1 Answers1

0

Solved, I used

    webView.loadDataWithBaseURL(null, content, "text/html", "UTF-8", null);
dxtr
  • 685
  • 1
  • 7
  • 16