我正在深入研究iOS应用程序的Deep Linking,并且我已成功管理基于我的应用程序的自定义架构的深层链接。
这意味着只要用户点击具有架构com.MYAPP://aPage?someInfo=value
的链接(例如在Safari中),就会打开该应用并按预期重定向用户。
问题在于我不知道如何处理与HTTP模式的链接,就像浏览器所做的那样。我希望同样的行为适用于http://www.MYAPP.com/aPage?someInfo=value
,但是根据我的研究,这是不可能的,除非涉及第三方解决方案。这是对的吗?
另一种选择似乎在我的服务器中有一个重定向,但是解决一个应该简单得多的问题似乎有点远。
提前感谢任何建议。
答案 0 :(得分:0)
试试这个例子:
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
[self handleURL:url];
return YES;
}
- (void) handleURL:(NSURL*)url{
if (!url)
return ;
if ([url.host isEqualToString:@"p"]) {
NSArray* array = [url pathComponents];
if ([array count] == 2 )
[self goToScreen:[array objectAtIndex:1]];
}
}
-(void) goToScreen:(NSString*)name{
if ([name isEqualToString:@"0"]) {
[self.tbc setSelectedIndex:0];
}
else if ([name isEqualToString:@"1"]) {
[self.tbc setSelectedIndex:1];
}
else if ([name isEqualToString:@"2"]) {
[self.tbc setSelectedIndex:2];
}
else if ([name isEqualToString:@"3"]) {
[self.tbc setSelectedIndex:0];
detailsViewController* details = [[[detailsViewController alloc] init] autorelease];
UINavigationController* nav = [[self.tbc viewControllers] objectAtIndex:0];
[nav popToRootViewControllerAnimated:NO];
[nav pushViewController:details animated:NO];
}
}