Android WebView с CSS-модификацией тега hr - PullRequest
2 голосов
/ 22 марта 2011

Я работаю над приложением, которое должно отображать некоторые динамически запрашиваемые HTML-контент, включая CSS. WebView, кажется, лучшая реализация для этого типа работы.

Я столкнулся с ошибкой при тестировании и отследил ее до следующий тег css:

ч {ширина: 100% важно!}

Android WebView, по-видимому, не способен отображать любой HTML, который включает в себя эту строку. Некоторые исследования показывают, что атрибут устарел (ссылка: http://www.w3schools.com/tags/att_hr_width.asp), но это работает во всех браузерах.

Ниже приведен HTML-код, включая эту строку. Это будет хорошо в любом браузер.

<html>
  <head>
    <style type=\"text/css\">
      hr{width:100%!important}
    </style>
  </head>
  <body>
    Some text
  </body>
</html>

А в Android:

           String exampleCSS = "<html><head><style type=\"text/css\">" +
                           "hr{width:100%!important}" +
                           "</style></head><body>" +
                           "Some text" +
                           "</body></html>";
           WebView webView = (WebView) findViewById(R.id.web_html_about);
           webView.loadData(exampleCSS, "text/html", "utf-8");

Результатом является ошибка «Веб-страница недоступна» в веб-просмотре.

Это известная проблема из-за устаревания? Это ошибка с WebView? Есть ли какие-нибудь известные способы решения таких проблем?

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Похоже, что веб-браузер Android передает контент с использованием схемы data: //, и в результате вам потребуется urlencode для контента, чтобы он работал как положено.В моем случае мне предоставляется css / html, поэтому мне пришлось использовать следующую работу:

Пример

    ((WebView) findViewById(R.id.web_body)).loadDataWithBaseURL(null, content, null, "utf-8", null);

Кажется, что это работает, и обойдем эту конкретную проблемувыше.Спасибо всем, кто ответил.Дейл.

2 голосов
/ 22 марта 2011

Час не обесценивается, хотя ему было дано смысловое значение.Это указывает на изменение содержания.

Я не уверен, что является причиной вашей проблемы, но я могу сказать, что ваша разметка, как написано, не нужна.Hr - это элемент уровня блока, поэтому он уже имеет ширину 100%.

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