在我的应用程序中,我想要使用两个不同的URL方案,例如One
和Two
,这样用户可以使用以下方式打开我的应用程序:one://something
和two://something
。
我正在使用以下代码:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
}
应用程序如何知道用户输入的是一个还是两个?
在我的应用程序中,我想要使用两个不同的URL方案,例如One
和Two
,这样用户可以使用以下方式打开我的应用程序:one://something
和two://something
。
我正在使用以下代码:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
}
handleOpenURL
已经被废弃,所以如果你的目标是iOS 4.2或更高版本,你应该使用application:openURL:sourceApplication:annotation:
代替。
在两种情况下,你都会收到一个NSURL
,你可以通过访问scheme
属性来查找用于访问你的应用程序的方案。
编辑:为了易读性,在你的application:openURL:sourceApplication:annotation:
实现中,代码应该类似于;
if([[url scheme] caseInsensitiveCompare:@"one"] == NSOrderedSame)
{
/* one here */
} else {
/* not one here */
}
if(![[url scheme] caseInsensitiveCompare:@"one"]) { /* one在这里 */ } else { /* 不是one在这里 */ }
- Joachim IsakssoncaseInsensitiveCompare:
返回一个枚举值,因此您应该将其更改为if([[url scheme] caseInsensitiveCompare:@"one"] == NSOrderedSame)
。 - rmaddy