iPhone: родное приложение с локально сохраненным веб-приложением? - PullRequest
2 голосов
/ 18 декабря 2009

Можно ли написать веб-приложение, а затем встроить его в собственное приложение, чтобы его можно было запускать без данных и продавать через магазин приложений?

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

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

Спасибо, ~ J

Ответы [ 7 ]

3 голосов
/ 18 декабря 2009

В моем приложении у меня есть полное руководство на основе 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 голосов
/ 30 января 2015

Если вы не кодер и интересуетесь только iOS, вы можете выполнить следующие действия:

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

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

0 голосов
/ 18 декабря 2009

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

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

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

0 голосов
/ 18 декабря 2009

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

0 голосов
/ 18 декабря 2009

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

0 голосов
/ 18 декабря 2009

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

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

0 голосов
/ 18 декабря 2009

Не понимаю, почему нет, просто дайте UIWebView baseUrl вашего локального хранимого пакета.

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