Имеется страница, Flash контент на которой необходим, а с iPhone и iPad сплошное расстройство.
Например Flash графики.
Казалось бы, пути два:
1. Заменять Flash html5
2. Заменять Flash статической картинкой
Но… но можно немного поизвращаться. Третий способ под катом.
Этот способ, к сожалению, не универсален и не подходит для всех приложений, но если надо показать Flash графики или что-нибудь подобное в странице — подойдет на ура.
1. Делаем iPhone версию приложения
2. Правим Info.plist в приложении и добавляем URL Scheme для приложения (например anychart://)
3. Добавляем в страницу детект iphone/ipad и редиректим в iTunes или открываем приложение
Вуаля. Пользователь может увидеть график.
Первый шаг я даже не буду описывать. Кому интересно — хабратопик: habrahabr.ru/blogs/Flash_Platform/104538
Второй шаг немного интереснее. Нам надо открыть сбилженый Flash-ем IPA и поправить в нем файлик.
Все достаточно просто:
1. Переименовываем ipa в zip
2. Разархивируем
3. Идем в разархивированную папку Payload и видим там папку приложения. Идем в нее (на Mac через Show package contents)
В этой папке лежит необходимый нам файл Info.plist
В Mac он редактируется через Property List Editor, но можно править любым текстовым редактором.
Нам надо добавить в корень URL types, в нем в Item 0 добавить URL Schemes, а в нем уже прописать URL схему для приложения. Например, чтобы приложение открывалось по ссылке вида myflashapp://param=123, нам надо прописать myflashapp.
Скрин:
Если Mac-а под рукой нет и правим в текстовом редакторе, то в корневую ноду <dict> надо добавить следующее:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>myflashapp</string>
</array>
<key>CFBundleURLName</key>
<string></string>
</dict>
</array>
Скрин:
Все. Дальше сохраняем файлик, пакуем Payload обратно в zip архив и переименовываем в ipa. И ставим на девайс.
Теперь наше приложение будет открываться в Safari по ссылке.
Например:
<a href=«testflashapp://?test=123»>Open app</a>
Простой код, который или откроет приложение, или редиректнет в iTunes для установки приложения:
setTimeout(function() {
window.location = «itunes.com/apps/yourappname»;
}, 25);
// If «custom-uri://» is registered the app will launch immediately and your
// timer won't fire. If it's not set, you'll get an ugly «Cannot Open Page»
// dialogue prior to the App Store application launching
window.location = «custom-uri://»;
Параметры, переданные приложению, ловить в InvokeEvent.INVOKE
Например Flash графики.
Казалось бы, пути два:
1. Заменять Flash html5
2. Заменять Flash статической картинкой
Но… но можно немного поизвращаться. Третий способ под катом.
Этот способ, к сожалению, не универсален и не подходит для всех приложений, но если надо показать Flash графики или что-нибудь подобное в странице — подойдет на ура.
Идея
1. Делаем iPhone версию приложения
2. Правим Info.plist в приложении и добавляем URL Scheme для приложения (например anychart://)
3. Добавляем в страницу детект iphone/ipad и редиректим в iTunes или открываем приложение
Вуаля. Пользователь может увидеть график.
Реализация
Делаем iPhone версию приложения
Первый шаг я даже не буду описывать. Кому интересно — хабратопик: habrahabr.ru/blogs/Flash_Platform/104538
Правим Info.plist в приложении и добавляем URL Scheme для приложения (например anychart://)
Второй шаг немного интереснее. Нам надо открыть сбилженый Flash-ем IPA и поправить в нем файлик.
Все достаточно просто:
1. Переименовываем ipa в zip
2. Разархивируем
3. Идем в разархивированную папку Payload и видим там папку приложения. Идем в нее (на Mac через Show package contents)
В этой папке лежит необходимый нам файл Info.plist
В Mac он редактируется через Property List Editor, но можно править любым текстовым редактором.
Нам надо добавить в корень URL types, в нем в Item 0 добавить URL Schemes, а в нем уже прописать URL схему для приложения. Например, чтобы приложение открывалось по ссылке вида myflashapp://param=123, нам надо прописать myflashapp.
Скрин:
Если Mac-а под рукой нет и правим в текстовом редакторе, то в корневую ноду <dict> надо добавить следующее:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>myflashapp</string>
</array>
<key>CFBundleURLName</key>
<string></string>
</dict>
</array>
Скрин:
Все. Дальше сохраняем файлик, пакуем Payload обратно в zip архив и переименовываем в ipa. И ставим на девайс.
Теперь наше приложение будет открываться в Safari по ссылке.
Например:
<a href=«testflashapp://?test=123»>Open app</a>
Добавляем умную ссылку
Простой код, который или откроет приложение, или редиректнет в iTunes для установки приложения:
setTimeout(function() {
window.location = «itunes.com/apps/yourappname»;
}, 25);
// If «custom-uri://» is registered the app will launch immediately and your
// timer won't fire. If it's not set, you'll get an ugly «Cannot Open Page»
// dialogue prior to the App Store application launching
window.location = «custom-uri://»;
Бонус пак
Параметры, переданные приложению, ловить в InvokeEvent.INVOKE