iOS 应用程序之间的跳转

/ 0评 / 0

iOS中的应用跳转用到的是URL Scheme,那么URL Scheme是什么?iOS有个特性就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme用于从浏览器或其他应用中启动本应用。常见的分享到第三方之间的跳转都是基于Scheme的。就好比通过URL访问网站是一样的。

配置app的URL Scheme 有两种方法,第一种通过 info.plist文件来配置

URL Scheme001

第二种是通过项目设置配置

URL Scheme002

跳转操作(跳转之前要保证安装过另一个app)

- (IBAction)jumpTest1:(id)sender {
    NSURL * url = [NSURL URLWithString:@"com.duicode.test1://"];
    [[UIApplication sharedApplication]openURL:url]; 
}

接收跳转,使用 AppDelegate 里面的代理方法:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    NSLog(@"Calling Application Bundle ID: %@", sourceApplication);
    NSLog(@"URL scheme:%@", [url scheme]);
    NSLog(@"URL query: %@", [url query]);
    
    [self performSelector:@selector(goFirst) withObject:self afterDelay:2];
    return YES;
}

-(void)goFirst{
    NSURL * url = [NSURL URLWithString:@"com.duicode.test2://"];
    [[UIApplication sharedApplication]openURL:url];
} 

这里需要注意一下在iOS9以后,唤起端需要配置一下 LSApplicationQueriesSchemes。iOS9之后需要,iOS9之后提高了app的安全性,需要给出一个类似白名单的东西,在白名单里面的才能打开app。不然报错。

URL Scheme003

这样就实现了 app 之间的跳转。

评论已关闭。