- Берем на GisMeteo код HTML информера
- Ложим в файлик, файлик кладем в assets
- Загружаем файлик в WebView. Не забываем про setSciptEnabled("true")
- Вуаля, все здорово
А вот и хрен. WebView говорит - страница недоступна. После непродолжительного траха выясняем, что удаление из файлика содержимого тега <style> лечит эту проблему и наступает счастье. Однако это не есть хорошо, потому как непонятно - а в чем собственно проблема заключалась? Проблем-то, собственно быть не должно изначально. Заметим также, что в браузере (который как бы идентичен WebView данный информер открывается нормально).
Ищем... ага, вот, не я один наступил на эти грабли
В конце концов выясняем. Символы типа % воспринимаются методом WebView.loadData(...) как специальные и он изгаляется над ними с особой жестокостью.
Поэтому передаваемую строку нужно как-то закодировать Как именно, вернее чем, документация этот вопрос скромно умалчивает. Могли бы и ссылочку дать на пример. Решение оказывается простым до безобразия
вместо
mWebView.loadData(data,"text/html" ,"utf-8");
используем
mWebView.loadDataWithBaseURL(null,data,"text/html" ,"utf-8",null);
и ничего, никуда перекодировать не надо. И работает!... один раз. Но тут выясняется что упал Gismeteo.ru. Неужели это я?!!! Да не, навряд ли.
Проверяем:
It's not just you! http://informer.gismeteo.ru looks down from here.
Ну и хрен с ним. На сегодня найдутся другие дела, а более сложный вариант получения погоды рассмотрим завтра
Спасибо выручил.
ОтветитьУдалить