Pull to refresh

Запускаем Flash из Safari на iPhone/iPad

Reading time 2 min
Views 3.5K
Имеется страница, Flash контент на которой необходим, а с iPhone и iPad сплошное расстройство.
Например 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
Tags:
Hubs:
+18
Comments 18
Comments Comments 18

Articles