實際上那些列表中的 URL Schemes 你都可以自己找到,那些你在用別人沒在用的應用的 URL Schemes 也同樣可以找到。
希望通過這篇文章,讓大家基本了解什么是URL Schemes以及如何查找URL Schemes。
注:文中會提到使用 FastOpen應用的例子,這是一款支持范圍非常廣的免費Launcher軟件,最重要的是支持自定義添加URL Schemes。感興趣的朋友可以自行前往App store下載。
URL,我們都很清楚,http://www.apple.com 就是個 URL,我們也叫它鏈接或網址;
Schemes,表示的是一個 URL 中的一個位置——最初始的位置,即 ://之前的那段字符。比如 http://www.apple.com 這個網址的 Schemes 是 http。
根據我們上面對 URL Schemes 的使用,我們可以很輕易地理解,在以本地應用為主的 iOS 上,我們可以像定位一個網頁一樣,用一種特殊的 URL 來定位一個應用甚至應用里某個具體的功能。而定位這個應用的,就應該這個應用的 URL 的 Schemes 部分,也就是開頭那部分。比如短信,就是sms:
你可以完全按照理解一個網頁的 URL ——也就是它的網址——的方式來理解一個 iOS 應用的 URL,拿蘋果的網站和 iOS 上的微信來做個簡單對比:
但是,兩者還有幾個重要的區別:
所有網頁都一定有網址,不管是首頁還是子頁。但未必所有的應用都有自己的 URL Schemes,更不是每個應用的每個功能都有相應的 URL Schemes。幾乎沒有所有功能都有對應 URL 的應用。一個 App 是否支持 URL Schemes 要看那個 App 的作者是否在自己的作品里添加了 URL Schemes 相關的代碼。一個網址只對應一個網頁,但并非每個 URL Schemes 都只對應一款應用。這點是因為蘋果沒有對 URL Schemes 有不允許重復的硬性要求,所以曾經出現過有 App 使用支付寶的 URL Schemes 攔截支付帳號和密碼的事件。一般網頁的 URL 比較好預測,而 iOS 上的 URL Schemes 因為沒有統一標準,所以非常難猜,通過猜來獲取 iOS 應用的 URL Schemes 是不現實的。基本 URL Schemes 的能力雖然簡單有限,但使用情境卻是最普遍的。
我所謂的基本 URL Schemes,是指一個 URL 的 Schemes 部分,比如上文提到的微信的weixin:。這個部分的唯一功能,就是打開相應應用,而不能夠跳轉到任何功能。
絕大多數所謂支持 URL Schemes 的應用,一般都是只有這么一個部分,它一般是這個應用的名稱,比如微信這款應用,它的基本 URL Schemes 是 weixin://。
但是,我前面提過了網頁 URL 和 iOS 應用的 URL 的三個重要區別,其中第三項,就是 iOS 上的 URL Schemes 并不規范,一個應用的 URL 可以是各種各樣的:
Coursera 的 URL 是:coursera-mobile:Duet 這款游戲的 URL 是:x-kumo-duet:Monument 這款游戲的 URL 是:fb690517270143345:扇貝新聞的 URL 是:wx95962d02b9c3e2f7:它們目前并沒有統一的規則,所以猜測一個應用的意義并不太大,你可以試試,但不要過于指望這種方式。下文會提到如何查找一個應用的基本URL Schemes,只要那個應用支持 URL Schemes 就能找到。
了解了URL Schemes的基本概念,一個重要的問題擺在我們面前——去哪找這些 URL Schemes?
其中,基本URL Schemes 是可以由你自己手動查詢的,所有支持基本 URL Schemes 的 App 都可以用以下方法查到其基本 URL Schemes。而其它幾種 URL Schemes 因為是寫進代碼中的,需要查詢各 App 的文檔,來參照例子根據自己的需求制作 URL。
自己查詢url的辦法是用文件管理器打開每個應用的應用名.APP子文件夾下的info.plist文件,找到CFBundleURLSchemes字段就可以在下方找到了。未越獄推薦使用pc端軟件itools完成。
首先,在 iTunes 找到你想用 URL 打開的 App,右鍵選擇在文件夾中顯示。
然后把這個文件復制到桌面上解壓(或者其它地方,總之不要直接在原文件夾解壓):
解壓完畢后,在解壓出的文件夾中,找到文件:
然后選擇顯示包內容。
找到 info.plist 這個文件,用你電腦里能打開它的 App 打開它。
然后查找 URL Schemes:
在 CFBundleURLSchemes 下的那兩行就是該 App 的基本 URL Schemes 了。
如果越獄后,可以用 iFile 或 Filza File Manager 這樣的文件管理軟件,進入路徑:
/var/containers/Bundle/application
找到你想要用 URL Schemes 打開的 App,進入下一級文件夾,搜索 info.plist:
最后用文本編輯器打開 info.plist,在其中搜索 URL Schemes 即可。
本質上,如前文所說,兩者是一種方法,區別僅是越獄后查詢的靈活度變高,你隨時可以看看自己新裝的 App 的 URL Schemes 是什么。如果你像我一樣基本使用 FastOpen 代替主屏的話,這種靈活性還是需要的。
上面介紹的是基本URL的查詢方法,但是很多復雜的URL Schemes 是寫入代碼中的,無法通過查詢 .plist 文件來獲取。這時,你只要搜 App 名 URL Schemes,一般就能找到該 App 的 URL Schemes 文檔頁面。同時,直接去這些 App 的官網查找相關網頁也可以。
對于大多數不太明白URL Schemes的用戶來說,掌握了基本URL Schemes的查找方法就足夠了,更多復雜的URL Schemes可以借助一些應用來自動添加。除去那些大名鼎鼎的Launcher軟件,其實還有很多很好用但卻被人忽視的應用。比如這款FastOpen。它幾乎涵蓋了所有支持第三方啟動的應用,甚至連支付寶轉賬、螞蟻花唄、微信掃一掃這樣的特定功能都可以自動識別,不需要用戶自定義添加URL Schemes,可以說是我目前用過的支持應用最全的一款。
在3D Touch和siri相繼出現后,URL Schemes的地位似乎受到了挑戰。
但是,3D Touch 和 URL Schemes 有極大的區別:一些復雜 URL Schemes 的功能 3D Touch 沒有涵蓋,反過來 3D Touch 也有一些可以做到的事通過復雜 URL Schemes 做不到。
之前介紹類似FastOpen這樣的Launcher軟件時,有朋友回復我:用siri就可以做到。確實,我每天也用siri很多次,但我覺得它和我正在用的FastOpen,兩者是不同的,互相不可替代的。Siri通過語音交流,你需要對著它說話,而且有時識別會出錯,在周圍有人的情況下會顯得尷尬。但是使用launcher,直接在通知欄添加快捷鍵,則更為方便快捷。
所以,雖然蘋果的各項改進使得URL Schemes已無往日輝煌,但它在 iOS 上的效率方面的作用暫仍然無法被取代。效率工具有兩個核心:減少時間浪費和在工作的時間集中注意力。通過 URL Schemes 完成的自動化動作同時做到了這兩點:它減少操作步驟,從而減少時間浪費;避免在桌面和 App 內的層層尋找,直達功能,從而減少了干擾。
本文版權歸www.fastopen.net所有,轉載請保留原文地址(http://www.fastopen.net/index.php/2017/01/16/url-schemes-introduction/)。歡迎下載FastOpen軟件。
新聞熱點
疑難解答