LoadData () Webview не работает в Android 10.0 (Q) - PullRequest
2 голосов
/ 01 октября 2019

Здесь я пытаюсь загрузить HTML-код в виде строки в веб-представлении loadData(). Ничего не происходит с этим методом, но тот же метод работает как charm ниже SDK 29.

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

Примечание: здесь яЯ не выполняю никаких операций кодирования или декодирования строки. Я просто передаю ее в виде строки вышеуказанному методу.

Ответы [ 4 ]

4 голосов
/ 01 октября 2019

Используйте этот код, он будет работать.

String newhtml_code = Base64.encodeToString(html_code.getBytes(), Base64.NO_PADDING);
        testWebView.loadData(newhtml_code,"text/html", "base64");
1 голос
/ 01 октября 2019

Теперь он работает после выполнения кодирования base-64 в строку html_code.

Решена проблема путем передачи строки html_code согласно данной инструкции в документах

1 голос
/ 01 октября 2019

файл манифеста в

 android:usesCleartextTraffic="true"

и

 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");
0 голосов
/ 01 октября 2019

Попробуйте позвонить

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

webview.getSettings().setJavaScriptEnabled(true);

до

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

, как показано ниже

    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");

, для получения более подробной информации см. эту ссылку

...