2015-09-06 74 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

相关问题