iOS应用间跳转(带参数)

封面图.jpeg

iOS的应用间跳转,项目A内点击按钮,或者其他操作,唤醒项目B,项目B做一定的响应操作。

一、配置信息

两个应用间通信,需要遵循同一个协议规范,类似于微信第三方登录,需要在Info.plist中添加白名单。

首先,在项目B的Info.plistURL types中添加一组数据,如下图所示
openURL为双方设定的共同遵循的协议名字,可以随意设置,但不要和其他的重复,最好是项目A的名称。
URL identifier为项目A的Bundle identifier,可以在项目A的TARGET里复制过来

项目B Info.plist配置.png

二、触发跳转操作

在项目A中需要实现跳转的操作中,比如按钮的点击事件中,实现以下代码

- (void)tapOpenURL{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"openURL://"] options:@{} completionHandler:^(BOOL success) {
        // success to do
    }];
}

@“openURL://"中,openURL为项目B中配置的共同协议,可以在这个url后拼接想要传递的参数

三、url回调处理

以上完成,在项目B的AppDelegate里实现应用url的回调方法,

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options{
    NSLog(@"=========%@========",url);
//    微信登录
//    return [WXApi handleOpenURL:url delegate:[WXApiManager sharedManager]];
    return YES;
}

在这里可以获得从项目A中传递过来的url,并取得参数,然后就可以做相应的各种处理了。

//iOS10后,下面的方法被废弃了,用上面的那个方法取代
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
    return YES;
}

你可能感兴趣的:(iOS应用间跳转(带参数))