【原+轉】iOS一個應用打開另一個應用

實現效果:應用app1的一個按鈕點擊,進入應用app2應用。

主要代碼:

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"app2://"]];

具體步驟如下:

1.先給app2添加一個URL Schemes:app2.
1.app2添加URL Schemes.png
3.app1代碼:找到info.plist,添加LSApplicationQueriesSchemes,添加app2的URL Schemes,這句話很重要!!:
2.給app1的info.plist添加app2的url schemes.png
3.給app1的按鈕點擊事件寫上這句話即可:
- (IBAction)ClickOpenUrlAction:(id)sender {

    //打開app2:
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"app2://"]];
}
4.先運行app2,再運行app1,點擊app1的按鈕,就可以打開app2的應用了。

【拓展】:

如果想要打開app2的時候給app2傳遞參數,可以在“// ”后面寫上,如: [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"app2://id=22&&name=mmmm"]];

這樣就實現了第一步打開要調用的應用,app2://就是本地的url,后面的參數則是你要傳遞的參數,這是為了后面打開應用中指定的頁面做準備。
1.app1項目打開app2應用:

//打開app2:
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"app2://id=22&&name=mmm"]];

2.app2項目的appdelete.m文件代碼接收參數:

//應用未在后臺執行走這里
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    if (launchOptions!=nil){
        [launchOptions objectForKey:@"UIApplicationLaunchOptionsRemoteNotificationKey"];
        NSURL *url = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
        if(url)
        {
            NSString *urlString=[NSString stringWithFormat:@"%@",url];
         [[NSUserDefaults standardUserDefaults] setObject:urlString forKey:@"url"];
        }
    }
    return YES;
}

//應用后臺運行的話會走這里
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    NSLog(@"輸出%@",url);
    NSString *urlString=[NSString stringWithFormat:@"%@",url];
    [[NSUserDefaults standardUserDefaults] setObject:urlString forKey:@"url"];

    return YES;
}
//應用后臺運行的話會走這里
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{
    NSLog(@"ddd輸出%@",url);
    NSString *urlString=[NSString stringWithFormat:@"%@",url];
    [[NSUserDefaults standardUserDefaults] setObject:urlString forKey:@"url"];

     return YES;
}

如圖:

app2接收參數.png

參考:
1.http://blog.csdn.net/lh_work/article/details/25197781
2.http://www.cnblogs.com/-zhangwy/p/6026040.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 因為項目的需要,我們公司的兩個項目要可以相互訪問,查找資料,經過自己的總結寫下這篇文章,希望可以幫助大家。 1.注...
    UNforgetta_ab44閱讀 5,228評論 0 0
  • 目標 平常我們做iOS開發,會經常遇到打開其他的APP的功能。本篇文章講的就是打開別人的APP的一些知識。我們的目...
    謙言忘語閱讀 181,717評論 77 309
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,923評論 18 139
  • 一、應用場景 單點授權登錄,第三方分享,第三方登錄 二、跳轉方法 例如手機有兩個應用,app1和app2,app1...
    RogerHXJ閱讀 2,276評論 1 1
  • 在陽光明媚的清晨里 你是我心里一個只有背影的天使 曾經的記憶里我們心靠得那么近 可是忽然一句話語握不住空氣里冷漠的...
    畫心心語閱讀 1,261評論 1 8