題記:從一個(gè)app跳轉(zhuǎn)到另一個(gè)app,或者是從一個(gè)app跳轉(zhuǎn)到網(wǎng)頁瀏覽器,再或者從一個(gè)app跳轉(zhuǎn)到設(shè)置里面的某個(gè)頁面,都要用到這個(gè)督惰。
首先創(chuàng)建兩個(gè)app : test1 test2 , 最終效果:從test1 跳轉(zhuǎn)到 test2
由最終效果可知采呐,需要從1跳到2,那么在1當(dāng)中就可拿到2當(dāng)中的一些信息凌净,比如boundle ID 悲龟,一個(gè)唯一的標(biāo)識(shí)符。但是在這里并不是拿到這個(gè)唯一的標(biāo)識(shí)符冰寻,這里拿到的是一個(gè)叫做URL Schemes, 它存放在第一個(gè)項(xiàng)目的info.plist文件中须教,需要我們手動(dòng)去添加。
添加方法:點(diǎn)擊“Information Property List”右邊的加號(hào)添加一項(xiàng)斩芭,選中URL types為名字轻腺,type為Array,為其添加一項(xiàng)Dictionary,里面兩個(gè)元素,一個(gè)是URL identifier ,也就是iD號(hào)划乖,可以直接用本項(xiàng)目的Bundle ID ; 另外一個(gè)就是URL Schemes ,其下添加一項(xiàng)约计,value自定義,這個(gè)就是我們要獲取的這個(gè)東西迁筛,可以很特別煤蚌,也可以很普通,甚至不唯一细卧,不唯一的時(shí)候跳轉(zhuǎn)時(shí)蘋果會(huì)自動(dòng)跳轉(zhuǎn)到最近打開的那一個(gè)app 尉桩。
如test2中的URL Schemes設(shè)置為aaaa 后,test1中設(shè)置如下圖:
白名單贪庙,是從iOS9后必須要添加的蜘犁,不然跳轉(zhuǎn)不過去的。
設(shè)置跳轉(zhuǎn)如下圖:(首先需要在設(shè)置中運(yùn)行過兩個(gè)項(xiàng)目止邮,保證都存在本機(jī)中)
當(dāng)然也可以不判斷本機(jī)是否存在test2 APP这橙,直接跳轉(zhuǎn):
//下圖中寫的“加不加冒號(hào)都可以”是錯(cuò)的,應(yīng)該是加不加//兩斜杠都可导披,冒號(hào)是一定要的屈扎。
當(dāng)然也可以在跳轉(zhuǎn)過程中從一個(gè)app 傳遞參數(shù)到 另一個(gè) app,
參考:http://www.reibang.com/p/6dc32ea29729
iOS9后要添加白名單才能跳轉(zhuǎn),那如果是微信小應(yīng)用跳轉(zhuǎn)到一個(gè)app呢撩匕?怎么做鹰晨?不可能在微信上添加你的app白名單吧!
可以參考網(wǎng)易新聞的客戶端,他們采用的方法是點(diǎn)擊后打開一個(gè)網(wǎng)頁模蜡,然后這個(gè)網(wǎng)頁會(huì)在微信的瀏覽器里漠趁,內(nèi)容是一張圖片,提示用戶通過利用微信瀏覽器右上角里的“在瀏覽器(safari)中打開”
用戶這樣操作后忍疾,這個(gè)頁面的js代碼會(huì)判斷是否已經(jīng)在系統(tǒng)瀏覽器中闯传,如果是,則運(yùn)行腳本window.location='newsApp://'
如果否卤妒,則繼續(xù)顯示圖片內(nèi)容
這樣就可以由微信跳轉(zhuǎn)到app了丸边,因?yàn)闉g覽器跳轉(zhuǎn)不需要添加白名單。
更多URL Schemes知識(shí) : http://www.reibang.com/p/d64b9be5ad64
還有一篇很專業(yè)的介紹連接:http://sspai.com/31500