題記:從一個app跳轉到另一個app,或者是從一個app跳轉到網頁瀏覽器,再或者從一個app跳轉到設置里面的某個頁面,都要用到這個。
首先創建兩個app : test1 test2 , 最終效果:從test1 跳轉到 test2
由最終效果可知,需要從1跳到2,那么在1當中就可拿到2當中的一些信息,比如boundle ID ,一個唯一的標識符。但是在這里并不是拿到這個唯一的標識符,這里拿到的是一個叫做URL Schemes, 它存放在第一個項目的info.plist文件中,需要我們手動去添加。
添加方法:點擊“Information Property List”右邊的加號添加一項,選中URL types為名字,type為Array,為其添加一項Dictionary,里面兩個元素,一個是URL identifier ,也就是iD號,可以直接用本項目的Bundle ID ; 另外一個就是URL Schemes ,其下添加一項,value自定義,這個就是我們要獲取的這個東西,可以很特別,也可以很普通,甚至不唯一,不唯一的時候跳轉時蘋果會自動跳轉到最近打開的那一個app 。
如test2中的URL Schemes設置為aaaa 后,test1中設置如下圖:
白名單,是從iOS9后必須要添加的,不然跳轉不過去的。
設置跳轉如下圖:(首先需要在設置中運行過兩個項目,保證都存在本機中)
當然也可以不判斷本機是否存在test2 APP,直接跳轉:
//下圖中寫的“加不加冒號都可以”是錯的,應該是加不加//兩斜杠都可,冒號是一定要的。
當然也可以在跳轉過程中從一個app 傳遞參數到 另一個 app,
參考:http://www.lxweimin.com/p/6dc32ea29729
iOS9后要添加白名單才能跳轉,那如果是微信小應用跳轉到一個app呢?怎么做?不可能在微信上添加你的app白名單吧!
可以參考網易新聞的客戶端,他們采用的方法是點擊后打開一個網頁,然后這個網頁會在微信的瀏覽器里,內容是一張圖片,提示用戶通過利用微信瀏覽器右上角里的“在瀏覽器(safari)中打開”
用戶這樣操作后,這個頁面的js代碼會判斷是否已經在系統瀏覽器中,如果是,則運行腳本window.location='newsApp://'
如果否,則繼續顯示圖片內容
這樣就可以由微信跳轉到app了,因為瀏覽器跳轉不需要添加白名單。
更多URL Schemes知識 : http://www.lxweimin.com/p/d64b9be5ad64
還有一篇很專業的介紹連接:http://sspai.com/31500