iOS兩個APP之間的數據傳遞和跳轉

兩個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】

     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);

}

如下圖:


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章