天天看點

IOS APP與APP和APP與Safari間的跳轉

最近做項目遇到這麼一個需求:從APP 跳轉到 Safari 然後再跳回APP 。以前做過從APP 跳到Safari ,很簡單,這裡就不多說了。重點說一下從Safari跳回到APP,以及從APP跳到APP。(其實這兩個幾乎是一回事。)

首先從Safari跳到APP

既然要想跳到你指定的APP,那麼就需要在你的APP中定義一個特殊的标示,也就是一個URL協定。

定義URL協定的如下圖  TARGETS ——> info ——>URL Types——>添加一個URL協定

IOS APP與APP和APP與Safari間的跳轉

如圖 其中URL Schemes字段就是你這個APP的特殊标示,而indentifier字段是這個URL協定的标示。(一個APP可以擁有多個URL協定)

下面的兩個字段可為空。最後再運作一下你的APP。

接下來就是見證奇迹的時刻了

打開你模拟器中的Safari浏覽器,在輸入在位址欄輸入:appABC:// 

然後回車,結果就是你想要的。(是不是很簡單?)

有時候你可能需要在從Safari跳回到APP時傳一些參數,那麼又有什麼方法可以接收這些參數呢?

在appdelegate.m檔案中寫下如下方法

IOS APP與APP和APP與Safari間的跳轉

這個方法是系統自動調用的方法,意思是:如果APP是通過openURL打開的自動調用此方法。而參數 url 就是打開APP的特定的URL。也就是上面的 appABC://  ,但是怎麼通過這個方法傳參呢?

答案就在URL中,你可以在 appABC:// 後面加上任何你想要的字元參數,例如appABC://name:wanglei//name:lilei

至于如何把這些參數給解析出來,就看你怎麼處理了。

下面是  APP(A)跳轉APP(B)

前面說了他們之間的原理是一樣的,從Safari跳到APP是通過打開特定的URL,那麼從 APP(A)跳轉APP(B)是不是也要打開特定的URL呢?

答案是肯定的,那麼怎麼打開這個特定的URL呢,其實在UIApplication裡面有這麼一個方法openURL,如下

[[UIApplication shareApplication] openURL:url]

參數URL為APP(B)特定的URL協定所表示的URL(後面會附上demo)

至于對參數的處理同上

下面是APP(A)與APP(B)互相跳到轉的demo

http://download.csdn.net/detail/u012884714/7679105

本文就到這裡,歡迎指正交流 —— LC