認識URL Scheme
URL Schemes是蘋果給出的用來跳轉到系統應用或者跳轉到別人的應用的一種機制。同時還可以在應用之間傳數據。筆者曾經想找出一種代替URL Scheme的方法,但是沒有找到,所以想要打開別人的APP或者讓別人打開我們的APP,那就需要通過URL Schemes了。
通過對比網頁鏈接來理解 iOS 上的 URL Schemes,應該就容易多了。URL Schemes 有兩個單詞:
1、URL,我們都很清楚,http://www.apple.com就是個 URL,我們也叫它鏈接或網址;
2、Schemes,表示的是一個 URL 中的一個位置——最初始的位置,即 ://之前的那段字符。比如 http://www.apple.com這個網址的 Schemes是 http。
根據我們上面對 URL Schemes 的使用,我們可以很輕易地理解,在以本地應用為主的 iOS 上,我們可以像定位一個網頁一樣,用一種特殊的 URL 來定位一個應用甚至應用里某個具體的功能。而定位這個應用的,就應該是這個應用的 URL 的 Schemes 部分,也就是開頭兒那部分。
感謝作者“謙言忘語 ”的分享http://www.lxweimin.com/p/0811ccd6a65d
看了這個博客之后,我創建了兩個項目,用來演示一下效果
項目ELWX代表 微信客戶端
項目ELNongyao代表 農藥客戶端
我們用微信sdk登錄的時候,微信文檔都會寫上在Info.plist中的一些設置,下面我們在ELNongyao中Info.plist中的設置看下圖
具體微信那邊怎么設置的我不太清楚,我只是這么猜測,當我們申請好了一個微信應用的時候,微信會給我們一個App id 和 AppSecret , 然后微信工作人員會將這個App id填寫在URL types這里面。
我們登錄的時候微信會要求我們把App id 傳過來,跳轉到微信客戶端以后,在微信中點擊授權,授權成功之后微信應該會調用下面的方法
//ELWXkldjie93410ld代表App id ,schemes=ELWX&success=YES是一些參數
//比如授權成功,或者授權失敗,會返回給客戶端
NSString *customURL = @"ELWXkldjie93410ld://app?schemes=ELWX&success=YES";
if ([[UIApplication sharedApplication]
canOpenURL:[NSURL URLWithString:customURL]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
}
上面是微信客戶端,下面我們看看農藥客戶端是如何進行跳轉的
農藥中的info.plist
接下來我們就看代碼吧,大家可以通過運行代碼就可以看到效果了
代碼的地址 https://github.com/elite-kai/ELUrlScheme
注意:
在info.plist中的設置比剛創建好的項目多了URL types、LSApplicationQueriesSchemes這兩項