我需要我的 iOS 应用程序来处理自定义 URL 方案,例如myapp://d1/d2
.
我URL Types
在我的应用程序中设置info.plist
并实现了所需的委托方法:
-(BOOL) application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
...
}
我运行我的应用程序,然后切换到 Safari(因此我的应用程序在后台运行)。在 Safari 中,我打开 URL myapp://d1/d2
。结果,我的应用程序像宣传的那样弹出到前台,并调用了上面的方法。问题是它的所有参数(application
、url
和)都是空的sourceApplication
。annotation
在花了一些时间并且没有得到任何非空参数后,我尝试用折旧的方法替换上面的方法application:handleOpenURL:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
...
}
那行得通。该url
参数正是我在 Safari 中输入的。
显然我不想使用折旧的方法。我究竟做错了什么?
在装有 iOS 6.1.3 的 iPad 和模拟器上运行。