最近做項(xiàng)目遇到這么一個需求:從APP 跳轉(zhuǎn)到 Safari 然后再跳回APP 。以前做過從APP 跳到Safari ,很簡單,這里就不多說了窒舟。重點(diǎn)說一下從Safari跳回到APP,以及從APP跳到APP相恃。(其實(shí)這兩個幾乎是一回事辜纲。)
首先從Safari跳到APP
既然要想跳到你指定的APP,那么就需要在你的APP中定義一個特殊的標(biāo)示拦耐,也就是一個URL協(xié)議耕腾。
定義URL協(xié)議的如下圖TARGETS ——> info ——>URL Types——>添加一個URL協(xié)議
如圖 其中URL Schemes字段就是你這個APP的特殊標(biāo)示,而indentifier字段是這個URL協(xié)議的標(biāo)示杀糯。(一個APP可以擁有多個URL協(xié)議)
下面的兩個字段可為空扫俺。最后再運(yùn)行一下你的APP。
接下來就是見證奇跡的時刻了
打開你模擬器中的Safari瀏覽器固翰,在輸入在地址欄輸入:appABC://
然后回車狼纬,結(jié)果就是你想要的。(是不是很簡單骂际?)
有時候你可能需要在從Safari跳回到APP時傳一些參數(shù)疗琉,那么又有什么方法可以接收這些參數(shù)呢?
在appdelegate.m文件中寫下如下方法
這個方法是系統(tǒng)自動調(diào)用的方法歉铝,意思是:如果APP是通過openURL打開的自動調(diào)用此方法盈简。而參數(shù) url 就是打開APP的特定的URL。也就是上面的appABC://太示,但是怎么通過這個方法傳參呢柠贤?
答案就在URL中,你可以在appABC://后面加上任何你想要的字符參數(shù)类缤,例如appABC://name:wanglei//name:lilei
至于如何把這些參數(shù)給解析出來臼勉,就看你怎么處理了。
下面是 ?APP(A)跳轉(zhuǎn)APP(B)
前面說了他們之間的原理是一樣的餐弱,從Safari跳到APP是通過打開特定的URL宴霸,那么從?APP(A)跳轉(zhuǎn)APP(B)是不是也要打開特定的URL呢?
答案是肯定的膏蚓,那么怎么打開這個特定的URL呢猖败,其實(shí)在UIApplication里面有這么一個方法openURL,如下
[[UIApplication shareApplication] openURL:url]
參數(shù)URL為APP(B)特定的URL協(xié)議所表示的URL(后面會附上demo)
至于對參數(shù)的處理同上
下面是APP(A)與APP(B)相互跳到轉(zhuǎn)的demo
http://download.csdn.net/detail/u012884714/7679105
本文就到這里降允,歡迎指正交流 —— LC