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

У меня есть приложение для Android, которое использует веб-просмотр для отображения некоторых экранов. Проблема - страницам веб-просмотра Android требуется много времени, чтобы загрузить изображения с удаленного сервера. Поэтому я подумал о запуске веб-сервера в моем приложении для Android (в новом потоке), который будет обслуживать статические изображения.

Мне удалось запустить веб-сервер в потоке на порту 8080 (из моего приложения), но не смог получить к нему доступ из моего приложения через веб-просмотр по URL-адресам «10.0.2.2:8080», «127.0.0.1:8080» и "localhost: 8080". Есть идеи, почему я не смог получить доступ к своему веб-серверу?

Заранее спасибо!


person Lin    schedule 09.05.2011    source источник


Ответы (3)


Не могли бы вы вместо этого напрямую загружать данные HTML в веб-просмотр?

String summary = "<html><body>You scored <b>192</b> points.</body></html>";
webview.loadData(summary, "text/html", "utf-8");
person Brian Zhang    schedule 09.05.2011
comment
Спасибо, Брайан. Я использую веб-просмотр, чтобы открыть веб-приложение в моем приложении для Android, и у меня также есть еще несколько мобильных приложений, которые используют то же веб-приложение с теми же страницами, поэтому я хочу обслуживать только код изображений / js, который принимает дольше всего загружается вместо всей html-страницы (в противном случае повторное использование кода будет затруднено) - person Lin; 09.05.2011

Вам не нужно запускать сервер для загрузки статического контента. Android webview имеет метод loadDataWithBaseURL для этого объекта

http://developer.android.com/reference/android/webkit/WebView.html#loadDataWithBaseURL%28java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String,%20java.lang.String%29

person Yekmer Simsek    schedule 09.05.2011

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

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

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

person JamesG    schedule 09.05.2011
comment
Могу ли я использовать это для загрузки удаленной HTML-страницы с локальными изображениями? - person Lin; 09.05.2011
comment
Я никогда не пробовал ничего подобного, но думаю, что это сработает - попробуйте и посмотрите. - person JamesG; 10.05.2011