Я не хочу тратить время на изучение Obj-C. Я потратил 7 лет на программирование веб-приложений. Не следует ли использовать WebView и просто написать все приложение в javascript, потянув файлы прямо из ресурсов проекта?
Как написать приложение iPhone полностью на JavaScript, не делая его просто веб-приложение?
Ответ 1
Я нашел ответ после поиска. Вот что я сделал:
-
Создайте новый проект в XCode. Я думаю, что я использовал приложение на основе представления.
-
Перетащите объект WebView на свой интерфейс и измените размер.
-
Внутри вашего WebViewController.m(или аналогично имени файла, в зависимости от имени вашего представления), в методе viewDidLoad:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; NSData *htmlData = [NSData dataWithContentsOfFile:filePath]; if (htmlData) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle bundlePath]; NSString *fullPath = [NSBundle pathForResource:@"index" ofType:@"html" inDirectory:path]; [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fullPath]]]; }
-
Теперь любые файлы, которые вы добавили в качестве ресурсов для проекта, доступны для использования в вашем веб-приложении. У меня есть файл index.html, включая javascript и css и файлы изображений без проблем. Единственное ограничение, которое я нашел до сих пор, заключается в том, что я не могу создавать новые папки, поэтому все файлы загромождают папку ресурсов.
-
Trick: убедитесь, что вы добавили файл в качестве ресурса в XCode или файл не будет доступен. Я добавляю пустой файл в XCode, а затем перетаскиваю файл вверху в finder. Это работало для меня.
Примечание. Я понимаю, что Obj-C не должен быть таким трудным для изучения. Но поскольку у меня уже есть это приложение, существующее в JS, и я знаю, что он работает в Safari, для меня это намного быстрее. В какой-то день я уверен, что мне придется сломаться и узнать Obj-C.
Несколько других ресурсов, которые я нашел полезными:
Вызов Obj-C из javascript: вызов objective-c из javascript
Вызов javascript из Obj-C: разработка приложений iphone для веб-хакеров
Чтение файлов из набора приложений: uiwebview
Ответ 2
Проверьте PhoneGap на http://www.phonegap.com, которые, как утверждают, позволяют вставлять JavaScript, HTML и CSS в родное приложение для iPhone.
Ответ 3
Для тех, кто делает это на iPhone 2.1 (возможно, 2.0), вам не нужно создавать специальные службы для локального хранения данных. MobileSafari, похоже, поддерживает API базы данных HTML5/WHATWG SQL. Это тот же API, который поддерживается новейшими версиями настольных Safari и Firefox.
Если вы используете набор инструментов типа Dojo или ExtJS, который предлагает абстракцию хранилища, ваш код должен работать практически с любым современным браузером, включая MobileSafari.
Чтобы проверить, откройте http://robertsanders.name/dev/stackoverflow/html5.html на вашем iPhone.
Если вы откроете эту страницу, посмотрите на файловую систему Jailbroken iPhone, вы увидите базу данных где-нибудь в /private/var/mobile/Library/WebKit/Databases/. Там даже есть каталог открываемых в Интернете БД.
root # sqlite3/private/var/mobile/Library/WebKit/Databases/Databases.db Версия SQLite 3.5.9 Введите ".help" для инструкции
sqlite > .databases файл имен seq
0 main/private/var/mobile/Library/WebKit/Databases/Databases.db
sqlite > .tables
Источники баз данных
sqlite > выберите * из Базы данных;
1 | http_robertsanders.name_0 | Примечание | База данных | Пример API | 20000 | 0000000000000001.db
sqlite > выберите * from Origins;
http_robertsanders.name_0 | 5242880
Ответ 4
Вы можете создать приложение, не зная каких-либо obj-C. Это позволяет использовать QuickConnectiPhone. Проверьте http://tetontech.wordpress.com за то, как использовать его, а также другие способы делать то, что вы просили.
Ответ 5
У вас должна быть собственная оболочка, написанная в Objective C. Эта оболочка может содержать действительно несколько строк кода (например, 10), необходимых для создания WebView, и переместить его на заданный адрес в Интернете (где находится ваше приложение). Но в этом случае ваше приложение должно быть полнофункциональным веб-приложением (я имею в виду использование не только JavaScript, но и HTML для разметки).
Ответ 6
Я столкнулся с этой проблемой. У меня уже есть игра, полностью написанная в Javascript. Я хотел бы сделать iPhone дружественной версией, но Obj-C является излишним. В результате я использовал WebView, чтобы указать на специальный URL-адрес приложения iphone. Подумав об этом, я предположил, что могу просто перенести эти файлы в каталог приложения и запустить их локально.
Ответ 7
Там нет способа сделать это с помощью современных API Apple. Ваша самая близкая ставка - написать простое приложение для iPhone, в которое встроен браузер webkit. Это позволит вам просматривать ваше приложение xhtml/js локально.
Если вы хотите хранить данные, вам нужно сделать еще один шаг и включить HTTP-сервер с легким весом, который обслуживает ваше приложение и предоставляет вызовы для хранения и извлечения данных. Возможно, это не идеальное решение для вас, но, возможно, меньше работы, чем полное приложение Obj-C.
В качестве побочной заметки Obj-C довольно легко изучить. В SDK есть множество примеров. Сообщество является сильным и будет отвечать на вопросы, заданные без проблем.
Ответ 8
посмотрите на новый o'reilly book по этому вопросу
Ответ 9
Я использую телефонную развязку на некоторое время, и это, кажется, имеет лучшие результаты для меня. Я отправлю свой опыт через неделю или около того с помощью ссылки на мое приложение.
Ответ 10
Titanium Mobile также является вариантом - он позволяет вам писать JavaScript, который переводится в Objective-C.
Ответ 11
Как минимум 2 человека упомянули телефонную разборку, но я подумал, что я тоже опубликую это, и упомянуть, что Apple одобрила схему телефонных разговоров. Итак, теперь вы не получите отклонение Apple от Apple только потому, что используете телефонную трубку.