在Safari中打开Facebook网址而不是本机应用

dan*_*kos 10 facebook objective-c ios

有没有办法在Safari中打开Facebook网址(例如http://www.facebook.com/facebook)而不是原生应用?我试图这样做:

NSURL *url = [NSURL URLWithString:@"http://www.facebook.com/facebook"];
[[UIApplication sharedApplication] openURL:url];
Run Code Online (Sandbox Code Playgroud)

但如果您尝试在Facebook域中打开URL,iOS会自动启动本机客户端(当然,如果已安装).谢谢.

dan*_*kos 27

好的,我想我找到了答案,你必须在网址中用"facebook.com"替换"www.facebook.com".

像这样的东西:

NSString *facebookUrlString = @"http://www.facebook.com/facebook";

if ([[facebookUrlString pathComponents] count] > 0) {
    if ([[facebookUrlString pathComponents][1] isEqualToString:@"www.facebook.com"]) {
        NSMutableArray *pathComponents = [[facebookUrlString pathComponents] mutableCopy];
        [pathComponents replaceObjectAtIndex:1 withObject:@"facebook.com"];
        facebookUrlString = [NSString pathWithComponents:pathComponents];
    }
}
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:facebookUrlString]];
Run Code Online (Sandbox Code Playgroud)