Мобильное приложение для веб-приложения (автономное хранилище) - PullRequest
2 голосов
/ 14 июля 2011

Я надеюсь, что этот вопрос принадлежит здесь.Я разрабатываю веб-приложение для клиента.Он включает в себя создание встреч / цитат для торговца и нуждается в некотором совете.

В основном, есть продукты, которые можно добавить в цитату, созданную в веб-приложении.Я хочу иметь возможность выбрать цитату в мобильном приложении со смартфона и заполнить ее.

Проблема, с которой я сталкиваюсь, заключается в том, что, поскольку подключение к Интернету может быть не всегда, мне нужно хранить данные оцифровки на устройстве в автономном режиме, чтобы их можно было синхронизировать при наличии Интернета.

Вотпроцесс с использованием мобильного приложения:

  1. Пользователь получает встречи из веб-приложения и сохраняет их (предпочтительно в базе данных)
  2. Даже при отсутствии соединения пользователь может затем заполнить квоту на встречу.
  3. Пользователь сохраняет цитату
  4. Мобильное приложение автоматически отправляет новую цитату в веб-приложение (при подключении)
  5. Когда интернет доступен, пользователь вручную синхронизирует данные

Веб-приложение заботится о создании встреч и управлении продуктами.Мобильное устройство хранит собственную копию продуктов и просто ссылку на цитату.

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

встречи

meeting_id

описание

продукты

id

описание

цитата

id

meeting_id

product_id

Разработано веб-приложениев PHP.

Я бы хотел воспользоваться преимуществом автономного хранилища HTML5 для мобильного приложения, так как я веб-разработчик и у меня нет времени на этот проект для изучения родного языка (то есть Objective-C).Я читал в нескольких местах, что база данных веб-SQL не будет продолжена, поэтому я не совсем уверен, какие у меня есть варианты.

Также для кода в мышлении HTML5 и JavaScript, поэтому, вероятно, с помощью jQTouchили jQuery Moble.

Если у кого-нибудь есть какие-либо предложения или рекомендации для меня, это было бы здорово!

Ответы [ 2 ]

2 голосов
/ 14 июля 2011

У меня есть мобильное приложение jQuery, которое хранит данные в автономном режиме.При подключении пользователи передают заполненные записи в веб-службу (приложение также использует автономные возможности в HTML5).Он использует Web SQL (который является SQLite в WebKit и Opera) в Mobile Safari и хорошо работает на основных устройствах (iPad / iPhone), но также полностью функционален в Chrome и Safari на настольном компьютере (я не пробовал Opera, ноочевидно, это не сработает в Firefox или IE).

Несколько соображений:

  • Как вы указали, у Web SQL есть несколько неопределенное будущее.Возможно, вы захотите взглянуть на IndexedDB, хотя в зависимости от браузеров, которые вам нужны для поддержки Web SQL, все может быть в порядке.
  • Размер локальной базы данных ограничен, но вы должны быть в порядке, если вы «очищаете» данные, помеченные какзаполнять и отправлять время от времени (я думаю, что это 5 МБ на дБ или около того, очень много).
  • Мое приложение общается с веб-службой SOAP через ajax, и мы все в одном домене.Возможно, вам придется взглянуть на CORS / обратные прокси-серверы и т. Д., Если домены будут различаться
  • Мне не нравится возиться с XML в Javascript, но XMLObjectifier облегчает эту сторону вещей (разбирает XML на объекты JSON)
0 голосов
/ 23 мая 2014

Приложения PhoneGap используют HTML5 и CSS3 для их рендеринга и JavaScript для их логики

Это означает, что у вас есть две возможности, независимо от того, предназначены ли данные вашего клиента в вашем приложении длябыть изменены без обновления приложения или нет.Поскольку я не могу определить это по информации, которую вы указали в вопросе, я собираюсь подробно ответить на каждый вопрос.


Если данные вашего клиента не нуждаются в обновлении (без обновленияваше приложение)

В этом случае вы считаете данные вашего клиента статичными.Происхождение этих данных не имеет значения, так как вы включите их в данные своего приложения, как и любой другой текст или изображение (или другой актив), перед распространением своего приложения.Это означает, что списки вашего клиента будут связаны с вашим приложением, и для их изменения потребуется обновить приложение.

Технически это означает, что вы просто добавите данные своего клиента какстатический файл.Это может быть HTML5-код, расположенный прямо в середине кода вашего собственного приложения, или это может быть любой тип файла (например, Json), который вашему приложению придется анализировать и отображать (используя JavaScript).

Однако, если вы выберете решение HTML5 в целях удобства обслуживания (и, возможно, по другим причинам), вам, вероятно, захочется отделить контент от вашего клиента от контента из вашего приложения.Для этого создайте страницу HTML5 / CSS3, которая содержит данные вашего клиента, и включите их на страницы вашего приложения, используя этот метод (или вы можете использовать pager.js библиотека, как упомянуто в этот ответ ).

В качестве примечания: следующий метод будет работать так же, как этот в данном случае;с другой стороны, это немного сложнее.

Если данные вашего клиента должны обновляться без обновления вашего приложения

В этом случае вы считаете, что данные вашего клиентадинамичный.Происхождение данных имеет значение, так как в вашем приложении будет храниться только метод извлечения данных: остальное будет делать устройство, которое будет выполнять ваше приложение.Хотя этот метод сложнее реализовать, его преимущество заключается в том, что он позволяет постоянно обновлять данные, не требуя обновления вашего приложения.

Технически это означает, что вы будете описывать макет приложения и (графический) дизайн в HTML5./ CSS3, и то, что вы будете кодировать поведение вашего приложения (выборка данных клиента, его сохранение, запрос, отображение и т. Д.) В JavaScript.

Для этого вам потребуется извлечь информацию вашего клиента.используя JavaScript (встроенный в файлы HTML5 вашего приложения), а затем снова используйте JavaScript, чтобы сохранить эту информацию в PhoneGap Storage .Затем вашему приложению также потребуется запросить PhoneGap Storage (все еще использующий JavaScript) для доступа к хранимой информации и ее отображения в соответствии с макетом / дизайном, описанным в файлах HTML5 / CSS3 (возможно, HTML5).скелет в вашем приложении для логической разметки данных вашего клиента, с CSS3 идентификаторами и классами для его дизайна / внешнего вида.)веб-сайт клиента работает, вам не нужно хранить информацию о листинге в вашем приложении.Но если веб-сайт вашего клиента выходит из строя или устройство отключается, вам потребуется локальное хранилище.

Bottomline

Другими словами, если ваше приложение никогда не требует подключения к Интернетудля работы безопасно включать списки в данные HTML5 / CSS3;в противном случае вам нужно будет воспользоваться решением JavaScript / PhoneGap Storage , даже если оно более сложное.

...