Статьи

Универсальный запуск изображений с PhoneGap

В последнее время я много играл с PhoneGap, в частности, чтобы подготовить Marbles2 , а также представить консоль JS для iPhone как собственное приложение. Я всегда хотел создать приложение, которое работало бы на всех устройствах, но получить правильный образ запуска для каждого устройства может быть сложно.

Как работает образ запуска на PhoneGap

В основном есть два образа запуска. Один раз для собственного приложения и один раз (вручную с помощью PhoneGap), пока загружается UIWebView (он же Safari). Нативный обрабатывается приложением в соответствии с документацией на сайте разработчиков Apple, но наложенное изображение жестко закодировано в «Default.png». Это то, что мы исправим.

Изменения в PhoneGapDelete.m

Для правильной работы трех устройств необходимо внести изменения в PhoneGapDelete . м . Изменение следующей строки :

UIImage* image = [[UIImage alloc] initWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Default" ofType:@"png"]];
imageView = [[UIImageView alloc] initWithImage:image];
[image release];

Для того, чтобы:

UIImage *image = [UIImage imageNamed:"Default"];
imageView = [[UIImageView alloc] initWithImage:image];
// [image release]

† Обратите внимание, что я не изучил Objective-c, я просто бездельничал и достаточно погуглил, чтобы добраться до этой точки!

imageNamed

Причина, по которой мы переключаемся с initWithContentsOfFile на imageNamed по двум причинам:

  1. initWithContentsOfFile также использует сделанный на заказ pathForResource, который возвращает полный путь к файлу, который мы не хотим, как я объясню.
  2. initWithContentsOfFile, по- видимому, неправильно выбирает ресурсы @ 2x для дисплеев сетчатки iPhone 4

Добавление стартовых изображений

Теперь вам нужно создать три изображения для:

  1. iPhone 3GS и ниже
  2. IPad
  3. iPhone 4 двойное разрешение

Подробная информация о разрешениях доступна для разработчиков в Apple .

Изображение на iPhone 4 простое, вы называете его Default @ 2x . png и перетащите его в проект xcode. Изображение iPhone 3GS (и ниже) называется Default . png, а также перетянул в проект (вероятно, уже будет изображение по умолчанию для телефонной щели, которое вы перезапишете). Наконец, изображение iPad должно называться Default ~ ipad . png .

Это работает только потому, что мы внесли изменения в использование initWithImage, потому что оно автоматически определит тип устройства и добавит расширение.

Один последний совет

Если вы замечаете, что когда ваше приложение загружает образ запуска, то это происходит из-за того, что UIWebView телефонного промежутка (неправильно) смещен на отрицательные 20 пикселей — мы можем это исправить.

Майкл Брукс (Michael Brooks) написал по-настоящему элегантный небольшой код, который исправляет смещение в веб-представлении, которое также способствует скачкам образа запуска.

Добавьте код из этого списка http://gist.github.com/510407 в свой * AppDelegate.m (если ваше приложение называется jsconsole, добавьте код в jsconsoleAppDelegate.m).

Как только этот код будет введен, у вас будет универсальное приложение с телефонными пробелами с изображениями запуска в соответствующем размере для приложения.

Я использовал эту технику для iOS-версии Консоли JS (хотя я не совсем уверен, что она будет принята в магазине itunes !!!).

Наконец, если вы хотите узнать больше о PhoneGap, моя конференция Full Frontal проводит целый день семинара с Брайаном Леру полностью на PhoneGap, так что проверьте это!

От http://remysharp.com/2010/08/30/universal-launch-images-with-phonegap