Ошибка в недавно появившемся Android WebView - PullRequest
0 голосов
/ 02 февраля 2019

Есть ли у кого-нибудь подобные проблемы при использовании WebView для визуализации содержимого приложения?Кажется, что «#» не работает в недавнем обновлении.

public class MainActivity extends AppCompatActivity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    WebView webView = findViewById(R.id.webView);
    String html = "<html><body>This is a #test</body></html>";
    webView.loadData(html, "text/html", null);
 }
}

Отображение «Test is a» (без теста) в недавно обновленном устройстве.Если вы запустите это в эмуляторе, вы можете не увидеть проблему.

Эмулятор:

enter image description here

Устройство:

enter image description here

1 Ответ

0 голосов
/ 02 февраля 2019

Я нашел решение.Из документа сказано: *

данные - base64 или URL-адрес

Таким образом, HTML не может быть простой строкой.Это должно быть закодировано с base64 как это

WebView webView = findViewById(R.id.webView);
String html = "<html><body>This is a #test</body></html>";
String base64 = Base64.encodeToString(html.getBytes(), Base64.NO_PADDING);
webView.loadData(base64, "text/html", "base64");

Тогда это работает нормально.Раньше он работал нормально, без кодирования в более ранней версии Chrome.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...