Запустить веб-сервер в приложении для Android

#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 для этой порции

http://developer.android.com/reference/android/webkit/WebView.html#loadDataWithBaseURL(java.lang .Строка, java.lang.Строка, java.lang.Строка, java.lang.Строка, java.lang.Строка)

Ответ №3:

Если у вас не так много изображений или если общий размер не слишком велик, вы можете просто включить свои изображения в качестве ресурсов в свое приложение.

Вы можете загрузить статический HTML-код в webview, который ссылается на изображения, которые вы развернули в своем приложении.

Краткое руководство по использованию локальных изображений в HTML для webview находится здесь: http://www.androidsnippets.com/webview-with-custom-html-and-local-images

Комментарии:

1. Могу ли я использовать это для загрузки удаленной HTML-страницы с локальными изображениями?

2. Я никогда не пробовал ничего подобного, но я думаю, что это сработает — попробуйте и посмотрите.