在學習有關這部分的原由是由於原本想作一個重啓的小demo,設想:若是App1能再本身中打開App2,那麼App1打開本身是否是就能打開本身了呢。後來就簡單的去實現了一下,結果失敗了,有一樣想法的就放棄吧,可是這個跳轉以爲仍是有必定用途的,爲了之後方便本身和你們,簡單的記錄一下,下面進入正題。 app
最開始,首先要爲本身的應用註冊一個本身的URL(由於一下子要調用openURL:的這個方法,這個很關鍵)。下面是註冊本身URL的方法。 ide
咱們都知道,當生成一個項目的時候,XCode會爲咱們生成不少文件,其中有一個叫 XXX-info.plist的配置文件(XXX爲你的工程名)。打開這個配置文件,右鍵點擊空白處,選擇Add Row添加一個新的一行(肯定點擊了InformationPropertyList由於咱們要在他下面添加一個新的一行)。 學習
將這行的名字改成URL types,而後點開Item 0,在Item 0會默認生成一個Key值爲URL identifier,能夠是任何值,但建議用「反域名」,說到這裏我也不太明白怎麼回事,可是能夠確認的是URL identifier內容不影響實現。。,
測試
在Item 0下在添加一個新的一行,名字設置爲URL Schemes 以下圖。 URL Schemes下的Item0的Value值就是內容的關鍵了,他將是咱們以後的URL協議名,這裏咱們寫成App1(而後一樣的步驟,將你要打開的應用的這裏設置App2),而後就是代碼部分了。 url
要是想測試的話,你能夠把這部分代碼放到按鈕的點擊事件中: spa
NSURL * url=[NSURL URLWithString:@"App2://"]; orm
[[UIApplication sharedApplication] openURL:url]; 事件
到這位置App1中的代碼就是先了。下面是App2中的作法:首先你要是想讓你的App2能響應App1的打開,他必定要再本身的AppDelegate中實現一個協議方法: 圖片
-(BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{ 博客
return YES;
}
這就完成了,有什麼問題能夠給我留言,因爲分辨率的問題因此圖片有點大,還望見諒。