2015-09-06 99 views
1

如果應用程序已在運行,我可以添加從URL啓動我的iOS應用程序(即:myapp:// xxxx)的功能。但是,如果關閉應用程序(崩潰)並單擊URL,它只會在rootView中打開應用程序,而不是調用func application(application: UIApplication, openURL url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool方法。有任何想法嗎?此外,似乎我可以測試它的唯一方法是在實際的設備上關閉應用程序,因此我無法使用Xcode進行調試。使用URL方案啓動不活動的應用程序

+0

你在用什麼方法破譯這個方案來發送用戶到一個特定的視圖?如果你沒有做任何事情,或者它沒有正確設置,它會去根視圖控制器 – soulshined

回答

0

您應該使用「應用程序(應用程序:UIApplication的,didFinishLaunchingWithOptions launchOptions:[NSObject的:AnyObject]) - >布爾」函數來獲取網址,要求打開的應用程序,那麼修改應用程序委託變成這個樣子:

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」//你在這裏的應用ID UIApplication.sharedApplication()。openURL(NSURL(string:「itms-apps://itunes.apple的.com /的WebObjects/MZStore.woa/WA/viewSoftware?ID = \\(ID)&MT = 8uo = 6" )!) – Mousavian

相關問題