Как известно, для запуска прилжения на iOS извне используются URL-схемы.
Самый известный пример - url типа tel://xxx, mailto://xxx, http://xxx
Достаточно выполнить переход по url такого вида и iOS переключится на приложение, где определена эта схема, а оно само обработает строку xxx.
Пользователям XCode хорошо известно как определить схему для своего приложения. Надо всего лишь добавить пару ключей в Info.plist. Как же быть тем, кто разрабатывает мобильные приложения на Flash/Flex?
На хабре этот вопрос был освещен в статье "Запускаем Flash из Safari на iPhone/iPad". Там был описан путь с распаковкой полученного после упаковки ipa и изменением Info.plist.
На самом деле, не обязательно так себя утруждать.
Если вы используете Flash Builder, достаточно открыть app.xml, найти секцию <iPhone> и добавить определение схемы туда. Вот как это может выглядеть:
Тут определена URL-схема flashapp://
Для проверки устанавливаем приложение на девайс, запускаем Safari и пишем в адресной строке flashapp://bla-bla-bla. Вуаля! Приложение запустилось.
Запускать его теперь можно не только из Safari, но и из других приложений.
Вот как это будет выглядеть на Objective-C:
Но есть большое НО!
Из Flash приложение на iOS нельзя запустить свое приложение по URL-схеме.
Эта ситуация сильно огорчает.
Я пробовал разные способов это обойти - определение ссылки в webView, ссылки с таргетами _blank и т.п. результат один: ничего не происходит.
На форуме Adobe этот вопрос поднимался один раз, но так и остался без ответа.
Зарепортил баг (FP-7314), надеюсь это исправят.
Самый известный пример - url типа tel://xxx, mailto://xxx, http://xxx
Достаточно выполнить переход по url такого вида и iOS переключится на приложение, где определена эта схема, а оно само обработает строку xxx.
Пользователям XCode хорошо известно как определить схему для своего приложения. Надо всего лишь добавить пару ключей в Info.plist. Как же быть тем, кто разрабатывает мобильные приложения на Flash/Flex?
На хабре этот вопрос был освещен в статье "Запускаем Flash из Safari на iPhone/iPad". Там был описан путь с распаковкой полученного после упаковки ipa и изменением Info.plist.
На самом деле, не обязательно так себя утруждать.
Если вы используете Flash Builder, достаточно открыть app.xml, найти секцию <iPhone> и добавить определение схемы туда. Вот как это может выглядеть:
<?xml version="1.0" encoding="utf-8" standalone="no"?> <application xmlns="http://ns.adobe.com/air/application/2.6"> .... <iPhone> <InfoAdditions><![CDATA[ <key>UIDeviceFamily</key> <array> <string>1</string> <string>2</string> </array> <key>CFBundleURLTypes</key> <array> <dict> <key>CFBundleURLSchemes</key> <array> <string>flashapp</string> </array> <key>CFBundleURLName</key> <string></string> </dict> </array> ]]></InfoAdditions> <requestedDisplayResolution>high</requestedDisplayResolution> </iPhone> \.... </application>
Тут определена URL-схема flashapp://
Для проверки устанавливаем приложение на девайс, запускаем Safari и пишем в адресной строке flashapp://bla-bla-bla. Вуаля! Приложение запустилось.
Запускать его теперь можно не только из Safari, но и из других приложений.
Вот как это будет выглядеть на Objective-C:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"flashapp://"]];
Но есть большое НО!
Из Flash приложение на iOS нельзя запустить свое приложение по URL-схеме.
flash.net.navigateToURL(new URLRequest("flashapp://"));
Запуск через navigateToURL() работает только для общеизвестных схем: tel://, mailto://, http:// и подобных.
Эта ситуация сильно огорчает.
Я пробовал разные способов это обойти - определение ссылки в webView, ссылки с таргетами _blank и т.п. результат один: ничего не происходит.
На форуме Adobe этот вопрос поднимался один раз, но так и остался без ответа.
Зарепортил баг (FP-7314), надеюсь это исправят.
Макс здравствуйте.
ОтветитьУдалитьПодскажите пожалуйста возможно ли запустить "air app" по обычному 'uri' типа :
http://maps.google.com/maps?q=London
спасибо.