Управление URL-адресами службы в мобильных приложениях (телефонная связь)

Я написал мобильное приложение phonegap/jQuery, которое весело работает в эмуляторе iphone. Мое приложение получает данные с удаленного хоста. На данный момент у меня есть ajax-запросы к «localhost: 8080» в моем коде.

Я знаю, это нехорошо. Я хотел бы изменить его.

Как лучше всего использовать URL-адреса в мобильных веб-приложениях?

Я имею в виду, могу ли я как-то отличаться от «времени сборки», какой URL использовать? Должен ли я сделать что-то вроде «если эму использовать локальный хост»?

Заранее спасибо, Кристиан


person Christian    schedule 28.06.2011    source источник


Ответы (1)


Недавно я развернул мобильное веб-приложение, которое выполняет различные вызовы на удаленный хост. Для меня самым простым решением было использовать относительные URI для всех удаленных вызовов, которые я делал, и использовать локальный обратный прокси-сервер для направления запроса на соответствующий сервер (я ориентировался на разные серверы при разработке и производстве).

Я разработал и протестировал это приложение локально, используя встроенный сервер Apache в OS X, поэтому настроить его было легко (для локального веб-предварительного просмотра в OS X вы изменяете файл <USER_NAME>.conf, найденный в /etc/apache2/users).

YMMV, но для меня это было несложно, потому что код не нужно было модифицировать.

person Ben    schedule 29.06.2011
comment
Извините, нужно спросить: вы имеете в виду, что вы отправили запрос на реальный URL-адрес, но настроили свой OSX для обработки этого URL-адреса? Я не уверен насчет относительных URL-адресов — мои файлы HMTL хранятся локально на iphone, поэтому я не думаю, что это сработает с относительными URL-адресами? - person Christian; 29.06.2011
comment
Да. Например, я бы определил что-то вроде этого (относительного) URL-адреса в своем коде: /ajax/somecall.aspx, и тогда он станет http://192.168.x.x/ajax/somecall.aspx, потому что я работаю локально (192.168.x.x — это ваша локальная машина). Затем моя локальная конфигурация Apache использует директивы прокси для преобразования /ajax/ в http://someserver.com/ajax/. - person Ben; 29.06.2011
comment
И как это должно работать, когда html-страница установлена ​​​​как приложение на iphone? Тогда нет Apache, который может выступать в качестве прокси - person Christian; 29.06.2011
comment
Если вам нужно получить доступ к различным ресурсам из приложения в зависимости от его статуса разработки/производства, я бы сказал, что вам нужно создать какой-то модуль конфигурации для хранения любых требуемых URI, и чтобы приложение извлекало URI оттуда. Я бы так и сделал, но я ничего не создавал в PhoneGap, так что, возможно, для этого есть другое соглашение. - person Ben; 29.06.2011
comment
Да, это именно то, что мне нужно. Спасибо за все ваше время - person Christian; 29.06.2011
comment
Без проблем. Я вижу, что PhoneGap имеет слой localStorage (см. Storage API) для пар ключ/значение, который работает так же, как API в приличных веб-браузерах, так что это выглядит очевидным местом для таких настроек. - person Ben; 29.06.2011
comment
Я учту это. Может быть, у меня есть специальное хранилище для конкретной сборки. Я покопаюсь в документации по развертыванию (если есть) и документации по хранилищу. Последнее мне нужно для другой функции, на этот раз не потеряно. Спасибо за вашу помощь. Даже когда я не получил готового к использованию решения, ваша помощь настолько ценна, что я проголосовал за ваш ответ сейчас. Ваше здоровье! - person Christian; 29.06.2011