ios app应用间跳转

不难发现当[UIApplication sharedApplication] openURL: options: completionHandler:方法只要指定一个URL Schame并且已经安装了对应的应用程序就可以打开此应用。当然,如果是自己开发的应用也可以调用openURL方法来打开。假设你现在开发了一个应用A,如果用户机器上已经安装了此应用,并且在应用B中希望能够直接打开A。那么首先需要确保应用A已经配置了Url Types,具体方法就是在plist文件中添加URL types节点并配置URL Schemas作为具体协议,配置URL identifier作为这个URL的唯一标识,如下图:

 

然后就可以调用openURL方法像打开系统应用一样打开第三方应用程序了:

//打开第三方应用
- (IBAction)thirdPartyApplicationClick:(UIButton *)sender {
 NSString *url=@"cmj://myparams";//myparams传递参数
    [self openUrl:url];
}

**************下面可以不要*************

就像调用系统应用一样,协议后面可以传递一些参数(例如上面传递的myparams),这样一来在应用中可以在AppDelegate的-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation代理方法中接收参数并解析。

-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    NSString *str=[NSString stringWithFormat:@"url:%@,source application:%@,params:%@",url,sourceApplication,[url host]];
    NSLog(@"%@",str);
    return YES;//是否打开
}
posted @ 2017-03-04 17:09  原码  阅读(181)  评论(0编辑  收藏  举报