两个APP之间的跳转是通过[[UIApplication sharedApplication] openURL:url]这种方式来实现的。
首先假设现在我们有APP_1和APP_2
1.首先设置第一个APP的url地址
2.再设置第二个APP的url地址
3.注意设置白名单
如果不填写则无法跳转,可能会提示下面
-canOpenURL: failed for URL: "baiduqianbao://" - error: "This app is not allowed to query for scheme baiduqianbao"
4.需要跳转的时候 【app_1】
NSDictionary *payContent =[ NSDictionary dictionaryWithObjectsAndKeys : @"AAA" , @" Key1 " , @"BBB" , @" Key2 " , @" CCC " , @" Key3 " , nil ];
2、Json转字符串 【注:这里我用的是类别方法,网上很多可以】
NSString *paramaStr = [payPargumentIZC_JSONString];
3、组装跳转Url,切记编码,这里楼主有被坑
NSString *param = [ NSString stringWithFormat : @"AppJumpSecond://page2?param=%@" ,paramaStr];
param = [param stringByAddingPercentEscapesUsingEncoding : NSUTF8StringEncoding ];
4、跳转另一个平台
NSURL * myURL = [ NSURL URLWithString :param];
if ([[ UIApplication sharedApplication ] canOpenURL :myURL]) {
// 已安装 — 唤醒
[[ UIApplication sharedApplication ] openURL :myURL];
} else {
// 未安装
NSLog ( @" 未检测到相关应用 " );
}
注: param 参数构成
AppJumpSecond 跳转的目的app的Url——scheme
page2 指定跳转的页面
paramaStr 所传递的参数
5.接收传递的数据 【app_2】
在APP delegate的方法内拦截 并做相应的处理
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString*,id> *)options
{
NSString *urlString = [urlabsoluteString];
NSLog(@"string===%@",urlString);
}
如下图: