2009-12-18 4 views
2

Возможно ли написать webapp, а затем встроить его в родное приложение, чтобы его можно было запустить без данных и продать через магазин приложений?iPhone: Родное приложение с локально сохраненным Webapp?

Pre позволяет легко ссылаться на файлы в локальной файловой структуре, поэтому очень просто построить webapp (HTML, CSS и Javascript) и вставить его в родное приложение.

Можно ли использовать те же простые HTML, CSS и Javascript (без кода Mojo/Webos) и встроить его таким же образом в родное приложение для iPhone? Это заставит пользователя выглядеть так, как будто значок в домашнем меню запускает webapp, но приложение можно получить без каких-либо данных и может быть продано через магазин приложений.

Спасибо, ~ J

ответ

0

Я не вижу, почему нет, просто дать UIWebView в BaseUrl вашего локального хранящегося пучка.

0

Посмотрите на PhoneGap (http://phonegap.com/)

Я не использовал его, но это может быть хорошим решением для того, что вы пытаетесь сделать.

0

Да, это вполне выполнимо. Вам просто нужно построить абсолютный путь к вашим HTML-файлам в вашем комплекте приложений, используя «файл: ///» в качестве протокола и указывая на него URL-адрес UIWebView. Вы можете сделать быстрый и грязный тест с помощью симулятора iPhone OS и записать что-то вроде «file: ///foo/bar.html» на Safari.app при условии, что HTML существует, он будет загружаться просто отлично.

0

Проблема заключается в ее упаковке. Из того, что я могу сказать (и я вполне мог быть абсолютно не прав), яблоко просто сбрасывает все ваши файлы в одну папку ресурсов, независимо от структуры каталогов в вашем проекте. Поэтому, если вы создаете веб-страницу, которая ссылается на images/logo.png и javascript/script.js, то эти файлы будут расположены в/вместо их соответствующих папок. Учитывая это, было бы возможно создать веб-приложение с полностью плоской структурой с самого начала.

+1

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

0

Нет технической причины, по которой я знаю, почему это должно быть проблемой.

Тем не менее, всегда есть вероятность, что Apple может отклонить приложение для выполнения чего-то вроде этого - они, конечно же, не стеснялись отказаться от приложений, которые раньше не «ведут себя правильно», а веб-приложения имеют некоторые определенные особенности, которые делают их не чувствую как родные приложения.

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

+0

Однако есть много приложений, которые делают это в магазине. –

+0

Правда, есть много приложений, которые используют встроенные WebView. Тем не менее, * I * не знаю ни одного из них ** исключительно для WebView. По крайней мере, большинство этих приложений будут использовать собственный элемент управления для верхнего бара или что-то еще, с массивным WebView для рендеринга контента. Но, как я уже сказал, вряд ли он будет отвергнут, но не невозможно. –

3

В моем приложении у меня есть полное руководство на основе HTML, которое я использую для отображения UIWebView. HTML, CSS и изображения хранятся локально в каталоге Help в моем приложении. Я просто загружаю первую страницу, используя следующий код:

NSString *path = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Help"];     
NSURL *helpURL = [NSURL fileURLWithPath:[path stringByAppendingPathComponent:@"helpintroduction.html"]]; 

NSURLRequest *URLReq = [NSURLRequest requestWithURL:helpURL]; 
[webHelpView loadRequest:URLReq]; 

и все загружается и отображается так, как если бы оно было на удаленном сервере.

Чтобы сохранить полную структуру каталогов ваших файлов HTML и т. Д., Просто добавьте эти файлы в проект Xcode, перетаскивая каталоги, где можете, и добавьте новую фазу сборки Copy Files. Сделайте пункт назначения Resources и путь, который вы хотите использовать для базы ваших веб-файлов (Справка в приведенном выше примере).Наконец, перетащите все ресурсы HTML и т. Д., Которые вы добавили в свой проект, в эту фазу сборки Copy Files, чтобы они оказались в комплекте с вашим приложением.

Я не вижу причин, почему это не будет работать с более сложными веб-приложениями, и я не видел никаких действий Apple против людей, делающих это в своих собственных приложениях.

+0

Итак, это поможет расширить метод, используемый: http://bit.ly/4YYzW Итак, у меня есть ссылки на изображения и скрипты в структуре каталогов в моем webapp? - Спасибо за этот удивительный ответ, кстати. Я просто новичок в iphoning и стараюсь, чтобы я пришел к этой проблеме под прямым углом. ~ J – Jordan

+0

Да, должно. Их утверждение, что вы не можете иметь подкаталоги, неверно. В приведенном выше примере у меня есть много подкаталогов в справочном каталоге, и все загружается правильно. Я никогда раньше не работал с PhoneGap, но если все, что он производит, может быть прочитано с веб-сервера, нет причин, по которым он не может быть загружен локально из ресурсов вашего приложения. –

0

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

  • Скачать Xcode
  • Скачать простой веб вид приложение из https://github.com/nomtek/iOSWebViewApp
  • Открыть простой веб вид приложения в Xcode
  • Добавьте HTMLs в файловой структуре проекта
  • Запустите приложение и вуаля :)

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

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