兩個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);
}
如下圖: