如何使用相同的URL Schemes打开两个不同的iOS应用程序

时间:2012-08-30 07:08:19

标签: ios

我有一些iOS应用程序,我想使用相同的URL方案从safari或其他应用程序打开它们,我该怎么办?

1 个答案:

答案 0 :(得分:0)

这是我在此博客中写的条目: 如何从Safari启动您的应用程序 http://appleiostips.wordpress.com/2011/07/27/launch-app-from-safari/

您必须使用XCode打开文件myapp-Info.plist。然后添加一种名为URL类型的新行,在里面添加一个Item 0。在项目内添加URL方案。在此URL方案中,写下您要为应用程序注册的名称。在这个例子中,我们使用了myapp。

然后当iOS找到myapp的链接:// withsomestuff将启动应用程序并在应用程序委托中调用handleURL方法:

- (BOOL)application:(UIApplication*) application handleOpenURL:(NSURL*) url
Inside this method you can parse the url to obtain aditional parameters.

    - (BOOL)application:(UIApplication*) application handleOpenURL:(NSURL*) url{
    if (!url) return NO;
    NSString* urlString=[url absoluteString];
    NSLog(@”Received URL %@”,urlString);
    NSString *loginCmd=@”myapp://login?”;
    //Expects to receive myapp://login?user_name&password
    if ([urlString hasPrefix:loginCmd]){
        NSRange rangeAmp=[urlString rangeOfString:@"&"];
        if (rangeAmp.location>([loginCmd length]+1)){
            NSString* password=[urlString substringFromIndex:rangeAmp.location+1];
            NSRange userRange={[loginCmd length],rangeAmp.location-[loginCm length]};
            NSString* user=[urlString substringWithRange:userRange];
        }
    }
returnYES;
}