Webview's loadData() is not working in android 10.0 (Q)

Viewed 4301

Here i am trying to load Html code as string in webview's loadData() .Nothing is happen over this mehtod but same method is working like charm in below sdk 29.

webview.loadData(html_code,"text/html",null);

Note : Here i am not performing any encoding or decoding operation on string.I am simply passing it as string to above method.

6 Answers

Use this code, it will work.

String newhtml_code = Base64.encodeToString(html_code.getBytes(), Base64.NO_PADDING);
        testWebView.loadData(newhtml_code,"text/html", "base64");

Try calling

String encodedHtml = Base64.encodeToString(html_code.getBytes(), Base64.NO_PADDING);

webview.getSettings().setJavaScriptEnabled(true);

before

webview.loadData(encodedHtml , "text/html", "base64");

like below

    String html_code= "<html><body>Your Actualtext.</body></html>";
    String encodedHtml = Base64.encodeToString(html_code.getBytes(), Base64.NO_PADDING);
 webview.getSettings().setJavaScriptEnabled(true);
    webview.loadData(encodedHtml , "text/html", "base64");

for more details refer to this link

manifest file in

 android:usesCleartextTraffic="true"

and

 WebSettings settings = wb_webview.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setSupportZoom(true);
        settings.setBuiltInZoomControls(true);
String html_code = "html code";
wb_webview.loadData(Base64.encodeToString(html_code.getBytes(), Base64.NO_PADDING) , "text/html", "base64");

I came up with another solution by using loadDataWithBaseURL

e.g.

webView.loadDataWithBaseURL(null, html, "text/html", null, null)

It should use less CPU and memory resource as no need Base64 calculation and storing.

I facing the same issue and fix it by using loadDataWithBaseURL() instead loadData() method

mWebView.loadData(mHtml, "text/html", "UTF-8");

solution:

mWebView.loadDataWithBaseURL(null,mHtml,"text/html", "UTF-8", null);
Related