2015-09-06 1 views
1

Мне удалось добавить возможность запуска моего приложения iOS из URL (то есть: myapp: // xxxx), если приложение уже запущено. Однако, если я закрою приложение (сбой его) и нажму на URL-адрес, он откроет приложение в корневом режиме вместо вызова метода func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool. Есть идеи? Кроме того, кажется, что единственный способ проверить его на реальном устройстве и закрыть приложение, поэтому я не могу использовать Xcode для отладки.Запустить неактивное приложение со схемой URL

+0

Что вы делаете в этом методе, чтобы расшифровать схему отправки пользователей на конкретный вид? Если вы ничего не делаете или не настроены должным образом, он перейдет к контроллеру корневого представления – soulshined

ответ

0

Вы должны использовать "приложения (приложения: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool" функция, чтобы получить URL, который под названием, чтобы открыть приложение, таким образом изменить делегат приложения, чтобы стать, как это:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    //any thing need to initialise app 
    if let url = launchOptions?[UIApplicationLaunchOptionsURLKey] as? NSURL { 
     let sourceApp = launchOptions?[UIApplicationLaunchOptionsSourceApplicationKey] as? String 
     let annotation = launchOptions?[UIApplicationLaunchOptionsAnnotationKey] as? AnyObject 
     self.application(application, openURL: url, sourceApplication: sourceApp, annotation: annotation) 
    } 

    return true 
} 
+1

Спасибо @Mousavian, что сработало! Xcode жаловался на литье, поэтому я добавил «как AnyObject?» В строку аннотации. На соответствующей заметке, с веб-сайта, я могу запустить приложение, используя 'myapp: // xxx', но только если приложение уже установлено. Есть ли способ перенаправить пользователя в AppStore для загрузки и перехода на определенную страницу с глубокой связью после загрузки? – Dean

+0

Я добавил кастинг для ответа. Если он удовлетворяет, пожалуйста, отметьте его как принятый ответ. Для iTunes App Store существует отдельная схема: let id = "948397575" // Вы здесь, здесь, здесь UIApplication.sharedApplication(). OpenURL (NSURL (строка: "itms-apps: //itunes.apple .com/WebObjects/MZStore.woa/ва/viewSoftware? ID = \\ (ID) и т = 8uo = 6")!) – Mousavian

Смежные вопросы