两个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 =[NSDictionarydictionaryWithObjectsAndKeys:@"AAA",@"Key1",@"BBB",@"Key2",@"CCC",@"Key3",nil];
2、Json转字符串 【注:这里我用的是类别方法,网上很多可以】
NSString *paramaStr = [payPargumentIZC_JSONString];
3、组装跳转Url,切记编码,这里楼主有被坑
NSString *param = [NSStringstringWithFormat:@"AppJumpSecond://page2?param=%@",paramaStr];
param = [param stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
4、跳转另一个平台
NSURL * myURL = [NSURLURLWithString:param];
if ([[UIApplicationsharedApplication]canOpenURL:myURL]) {
//已安装—唤醒
[[UIApplicationsharedApplication]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);
}
如下图:

本文详细介绍如何在iOS中实现两个APP之间的跳转,包括设置URL Scheme、组装跳转URL及编码、检测目标APP是否安装并进行跳转,以及如何在目标APP中接收传递的数据。


被折叠的 条评论
为什么被折叠?



