2015-08-30 3 views
1

Я разрабатываю простое приложение для Android, в котором пользователь должен заполнить очень сложную форму, для которой я считаю, что гораздо проще использовать форму HTML, чем активность Android, с тонами TextViews ,Android WebView: автономный манифест против локальных файлов

Данные, собранные формой, должны быть отправлены в удаленную базу данных, и приложение должно работать в автономном режиме.

Я думал о двух альтернативах, вопрос в том, какой из них лучше?

  1. Пусть WebView загрузить удаленный веб-сайт с автономному манифеста
  2. Пусть WebView загрузить локальный веб-сайт в папке активов

Мой второй вопрос связан с хранением в автономном режиме, и еще раз у меня есть два варианта, и я не знаю, какой из них лучше:

  1. Использование локального хранения HTML5, и пусть HTML + JavaScript отправить данные на сервер при подключении к Интернету снова
  2. Позвольте моему Android-приложению уловить данные формы и обработать все, что связано с Android.

Любой вход будет очень полезен. Заранее спасибо.

ответ

2

Относительно первого вопроса: зависит от того, как часто вам нужно обновлять форму. Онлайн-кешированная форма может быть быстро обновлена, в то время как вложенные страницы обновляются только вместе с приложением, и вам нужно будет учитывать, что как старые, так и новые клиенты могут одновременно подключаться к вашему серверу (пользователи будут затягивать обновление).

Другой аспект - переносимость. Представляете ли вы версию iOS своего приложения или, возможно, мобильный сайт? Если да, то решение HTML5 определенно более портативно. Кроме того, отладка приложения, которое полностью является HTML или полностью родным, обычно проще, чем гибридное - вы можете оставаться в пределах одного отладчика.

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

[Добавлено позже] OK - один из недостатков размещения вашего сайта в папке assets заключается в том, что вам нужно будет использовать схему file:, чтобы получить к ней доступ. Это может привести к некоторым связанным с перекрестным загрузкам вопросам, связанным с доступом к загрузке, если вы попытаетесь объединить содержимое в комплекте с контентом из Интернета. Проверьте эти настройки WebView, например: setAllowFileAccessFromFileURLs, setAllowUniversalAccessFromFileURLs, setMixedContentMode.

+0

Я очень ценю ваш вход. Я не возражаю принять ваш ответ, но просто чтобы быть уверенным ... по вашему мнению, будет ли какая-либо комбинация альтернатив (локальная или удаленная + HTML5-синхронизация против Android-синхронизации) ошибочной? – Merlevede

+0

@Merlevede: Я не совсем уверен, что вы подразумеваете под «неправильным», но ... Прежде всего, эти два варианта полностью ортогональны - в вашем приложении у вас может быть любая комбинация из них, и любая комбинация будет работайте на не очень древних версиях Android (думаю, поддерживаются как AppCache, так и локальное хранилище с Froyo). Возможно, единственным недостатком загрузки вашего сайта из папки «assets» является то, что URL-адреса 'file:' могут добавлять головную боль с точки зрения безопасности в более новые версии WebView. Пожалуйста, см. Мое дополнение к ответу. –

Смежные вопросы