1

我需要我的 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。结果,我的应用程序像宣传的那样弹出到前台,并调用了上面的方法。问题是它的所有参数(applicationurl和)都是空的sourceApplicationannotation

在花了一些时间并且没有得到任何非空参数后,我尝试用折旧的方法替换上面的方法application:handleOpenURL:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    ...
}

那行得通。该url参数正是我在 Safari 中输入的。

显然我不想使用折旧的方法。我究竟做错了什么?

在装有 iOS 6.1.3 的 iPad 和模拟器上运行。

4

0 回答 0