#android #webserver #android-webview
#Android #веб-сервер #android-webview
Вопрос:
У меня есть приложение для Android, которое использует webview для отображения некоторых своих экранов. Проблема — страницам Android webview требуется много времени для загрузки изображений с удаленного сервера. Поэтому я подумал о запуске веб-сервера в моем приложении для Android (в новом потоке), который будет обслуживать статические изображения.
Я смог запустить веб-сервер в потоке на порту 8080 (из моего приложения), но не смог получить к нему доступ из моего приложения через webview по url «10.0.2.2:8080», «127.0.0.1:8080» и «localhost:8080». Есть идеи, почему я не смог получить доступ к своему веб-серверу?
Большое спасибо!
Ответ №1:
Не могли бы вы вместо этого напрямую загрузить HTML-данные в webview?
String summary = "<html><body>You scored <b>192</b> points.</body></html>";
webview.loadData(summary, "text/html", "utf-8");
Комментарии:
1. Спасибо, Брайан. Я использую webview для открытия веб-приложения в моем приложении для Android, и у меня также есть еще несколько мобильных приложений, которые используют то же веб-приложение с теми же страницами, поэтому я хочу обслуживать только изображения / js-код, загрузка которого занимает больше всего времени, а не всю HTML-страницу (в противном случае повторное использование кода будет затруднено)
Ответ №2:
Вам не нужно запускать сервер для загрузки статического контента. В Android webview есть метод loadDataWithBaseURL для этой порции
Ответ №3:
Если у вас не так много изображений или если общий размер не слишком велик, вы можете просто включить свои изображения в качестве ресурсов в свое приложение.
Вы можете загрузить статический HTML-код в webview, который ссылается на изображения, которые вы развернули в своем приложении.
Краткое руководство по использованию локальных изображений в HTML для webview находится здесь: http://www.androidsnippets.com/webview-with-custom-html-and-local-images
Комментарии:
1. Могу ли я использовать это для загрузки удаленной HTML-страницы с локальными изображениями?
2. Я никогда не пробовал ничего подобного, но я думаю, что это сработает — попробуйте и посмотрите.