iOS有一種相對來說不太爲人知的打開軟件甚至直接執行軟件某項操作(比如直接打開Twitter的發信息界面等)的方法,就是通過這個軟件的URL Schemes來直接打開或者執行操作。 具體地舉個例子,比如你在Safari瀏覽器(只能Safari)的地址框,輸入
twitter://post?messages
然後確定,你就會直接打開Twitter這個軟件並且直接進入發新推的界面(現在就試試唄)。
Launch Center Pro等軟件就是基於這個原理工作的。 在之前通過系統的URL Schemes甚至可以做到直接打開關閉Wifi等系統設置上的操作。只是後來蘋果將這方面功能屏蔽了,所以現在此類的軟件就只能做到打開軟件,或者執行某項軟件的操作了。力道大減。 那麼這個URL Schemes我們應該怎麼獲得呢? 我把它分爲兩個部分,
一.用於打開軟件的URL Schemes
這個是非常容易的。所有軟件都可以直接做到。 大家根據剛纔的twitter的URL Schemes就能看出來,它的格式是"軟件名://"這樣的。 所以理論上,我們可以在safari瀏覽器輸入任何軟件的名稱後面加個冒號和兩斜槓來打開軟件,比如說輸入
Music://
然後確認,就會直接跳轉到音樂。(再試試唄) 但是,當你想嘗試你最想嘗試的微博的時候,輸入
Weibo://
然後確認,你會發現,這不好使。why? 因爲新浪微博的真實的軟件名不是這個Weibo,而是sinaweibo所以通過URL Schemes打開軟件雖然容易,但是問題就在於去哪搞到正確的軟件名。 在iOS設備上操作的辦法需要越獄,因爲用到iFile: 第一步:打開iFile,在列表裏選擇“應用程序”,或者進入路徑進入
/var/mobile/Applications
如果你看到的是亂碼,就在設置裏將“應用程序名稱”這個選項打開:
然後找到你想要的軟件,比如說我現在要找“微博HD”:
URL Schemes當然不可能有中文,所以我們需要點開這個“微博HD”的文件夾,就會看到WeiboHDPro.app:
接着點開WeiboHDPro.app,找到“info.plist”:
用文本編輯器打開這個”info.plist”,並搜索“CFBundleURLSchemes”:
下面的就是這個軟件的URL Schemes,確切地說微博有兩個。 我們把這兩個中的任何一個複製下來,再粘貼到Safari裏,後面加上冒號和兩個斜槓,即
sinaweibohd://
再按輸入,就直接可以跳轉到新浪微博裏了。
另,在電腦端操作的辦法不需要越獄,直接用第三方文件管理軟件按照上述路徑找到info.plist文件然後搜索“CFBundleURLSchemes”,找到URL Schemes就可以了。
二.用於直接執行某款軟件的某項操作的URL Schemes
文頭提到的:
twitter://post?messages
就是一個這樣的例子。 你在Safari的地址欄輸入這條URL,它不僅會幫你打開Twitter這個軟件,而且進入的時候就是輸入新信息的界面。這個是很方便的,而且再通過一些URL,你甚至可以做到預設好內容。這樣你在Safari輸入那條URL的時候,不僅會打開twitter、直接進入發送新消息的界面,而且裏面已經有了內置的內容。 這雖然聽起來不錯,但是URL卻不是我們可以找到的。 因爲每個軟件都可以按自己的方式去設定URL (LaunchCenterPro的開發者給其它開發者出了一個簡易的爲自己的App增加URL Schemes的教程)。
不過我們可以按照自己的想法去猜猜某些軟件的URL。因爲我們看那條Twitter的URL,發送新消息的界面就是”post?messages“,別的發佈新消息的URL有可能是也有可能不是這樣,但總歸是和“新消息”、“發佈”等單詞有關的單詞,總不會說微博發佈新消息的URL是:
sinaweibo://shit
我猜出來了一個Byword的URL,是直接打開並創建新文本的URL:
byword://new
要猜出來所有你想要的App的執行動作類的URL確實沒那麼簡單,不過很多開發者會在自己的主頁公佈自己軟件的URL,Tweetbot的就非常全面。
當然也不是所有的軟件的作者都有公佈,因爲有的軟件作者可能軟件裏都沒有這種類型的URL,那就沒戲了。
handleOpenURL總結了相當多的可用的URL Schemes,不過不怎麼有國產的軟件,大家可以直接搜索。如果你找到了或者搞到了這個網站上沒有的URL Schemes,你還可以直接提交給這個網站。造福後來人。
以上就是查找兩種URL Schemes的辦法,本文不是爲小白寫的所以還是有經驗的人再動手。小白實在想搞,等以後我把視頻再補上,因爲現在我對windows的plist編輯軟件還不大清楚。