Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 90
#1

Не правильное отображение веб страниц в webView - Android

21.04.2016, 13:37. Просмотров 280. Ответов 5
Метки нет (Все метки)

Подскажите в чем может быть проблема.

в webView открываю страницу
Java
1
mWebView.loadUrl("http://stackoverflow.com");
Страница загружается нормально.

Дальше в методе onPageFinished запускаю asynkTask который с загруженного сайта собирает весь HTML код в String.
и вызываю

Java
1
mWebView.loadData(finalHtml, "text/html", null);
Сайт загружается без стилей в таком виде.


Выводил String с полученным кодом, сравнивал с оригиналом - расхождений нет вообще. И так ломаются все сайты.
Миниатюры
Не правильное отображение веб страниц в webView  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2016, 13:37     Не правильное отображение веб страниц в webView
Посмотрите здесь:

Вставка изображений в WebView Android
WebView, обработка ссылок Android
WebView, не загружается страница Android
Android Не правильное отображение Текста
Android gif анимация и WebView
Android WebView. Навигация свайпом
Перехват запросов от WebView Android
Изменение текста webview Android
Android Отображение xml в WebView
Android Webview Веб браузер отображает некорректно страницы
Как реализовать правильное отображение View элементов? Android
Android Webview, контроль загрузки страниц

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
21.04.2016, 14:06     Не правильное отображение веб страниц в webView #2
Andrew9, ну а, допустим, ЯваСкрипт и прочие настройки WebView включены?
onPageFinished - один из самых бажных методов, он выполняется тогда, когда в память загружен HTML. При этом могут продолжать грузиться картинки и выполняться JS.
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 90
21.04.2016, 17:18  [ТС]     Не правильное отображение веб страниц в webView #3
Java
1
2
mWebView.getSettings().setDomStorageEnabled(true);
        mWebView.getSettings().setJavaScriptEnabled(true);
Вот это включено.

Неужели настолько плохо ? Я вижу загруженную страницу нормальную, а потом срабатывает onPageFinished. Как избежать недозагрузок и какой метод использовать тогда?

Добавлено через 2 часа 50 минут
Поставил задержку перед onPageFinished 10сек, так же беда. Вряд ли за такое время что то не успевает загрузиться. Несколько сайтов все же нормально открываются, но всего несколько. Я уже не знаю где искать проблему.
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,723
21.04.2016, 18:49     Не правильное отображение веб страниц в webView #4
Andrew9, честно говоря, даже исходную задачу я не понял.
Вы сначала открываете сайт, затем его скачиваете и открываете как локальный html.
Но ведь там ссылки на все скрипты и всё остальное рассчитываются относительно корневого URL, который теперь у вас исчез.

Добавлено через 1 минуту
Возможно, следует использовать более крутой метод - loadDataWithBaseURL.
Alexvp
107 / 71 / 8
Регистрация: 03.08.2014
Сообщений: 344
21.04.2016, 19:39     Не правильное отображение веб страниц в webView #5
Цитата Сообщение от Andrew9 Посмотреть сообщение
запускаю asynkTask который с загруженного сайта собирает весь HTML код в String
Файлы CSS не входят в HTML-код, они подключаются при загрузке страницы по протоколу HTTP. А вы просто качаете текстовый файл, что собственно и есть HTML-файл. Поэтому результат соответствует вашим действиям.
Andrew9
0 / 0 / 0
Регистрация: 28.04.2013
Сообщений: 90
22.04.2016, 11:39  [ТС]     Не правильное отображение веб страниц в webView #6
Понял в чем проблема, подскажите как решить. Основная задача заключается в том что бы получить страницу в String HTML, сделать
Java
1
2
HTML.replace("</body>","<javascript>alert(message)
</javascript> </body>");
и отобразить новую страницу, что бы сработал js. Все работает, вот только ломаются стили.

Добавлено через 57 секунд
loadDataWithBaseURL буду пробовать, завтра сообщу о результатах

Добавлено через 15 часов 46 минут
Java
1
myWebView.loadDataWithBaseURL(null, HTML, "text/html", "UTF-8", null);
Дает тот же результат, сайт без стилей грузится.
Пробовал передавать вместо первого null - ссылку на сайт, у которого я беру HTML, меняю и пытаюсь отобразить
Yandex
Объявления
22.04.2016, 11:39     Не правильное отображение веб страниц в webView
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru