URL Scheme的作用
我們都知道蘋果手機中的APP都有一個沙盒,APP就是一個信息孤島,相互是不可以進行通信的淳附。但是iOS的APP可以注冊自己的URL Scheme打洼,URL Scheme是為方便app之間互相調(diào)用而設計的。我們可以通過系統(tǒng)的OpenURL來打開該app玩焰,并可以傳遞一些參數(shù)由驹。
例如:你在Safari里輸入www.alipay.com,就可以直接打開你的支付寶app,前提是你的手機裝了支付寶蔓榄。如果你沒有裝支付寶并炮,應該顯示的是支付寶下載界面,點擊會跳到AppStore的支付寶下載界面甥郑。
URL Scheme必須能唯一標識一個APP逃魄,如果你設置的URL Scheme與別的APP的URL Scheme沖突時,你的APP不一定會被啟動起來澜搅。因為當你的APP在安裝的時候伍俘,系統(tǒng)里面已經(jīng)注冊了你的URL Scheme。
一般情況下勉躺,是會調(diào)用先安裝的app癌瘾。但是iOS的系統(tǒng)app的URL Scheme肯定是最高的。所以我們定義URL Scheme的時候饵溅,盡量避開系統(tǒng)app已經(jīng)定義過的URL Scheme妨退。
注冊URL Scheme
1.在info.plist里添加URL types
每一個項目里面都會有一個info.plist配置文件。找到info.plist蜕企,右鍵選擇Add Row碧注,然后選擇URL types。如圖所示:
url1
2.添加URL Schemes
添加完URL types糖赔,點擊展開萍丐。右鍵選擇Add Row,添加URL Schemes:
url2
3.設置URL Schemes
設置URL Schemes為iOSDevTip
url3
4.設置URL Identifier
URL Identifier是自定義的 URL scheme 的名字放典,一般采用反轉(zhuǎn)域名的方法保證該名字的唯一性逝变,比如 com.iOSStrongDemo.www
url4
添加成功啟動提示
為了方便測試,我們在AppDelegate里面添加一個UIAlertView奋构,當app被成功打開時壳影,會提出提示:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL*)url
{
// 接受傳過來的參數(shù)
NSString *text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"打開啦"
message:text
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alertView show];
return YES;
}
Safari啟動自定義的URL Schemes APP
既然已經(jīng)配置好URL Schemes,那么我們可以來款速測試一下弥臼,我們設置的URL Schemes是否有效宴咧。打開Safari,在地址欄里輸入:iOSDevTip://
url6
果然成功打開:
url5
也可以在地址欄中輸入:iOSDevTip://com.iOSStrongDemo.www径缅。也是可以打開注冊了URL Schemes的APP的掺栅。
通過另一個APP啟動注冊了URL Schemes的APP
NSString *url = @"iOSDevTip://";
//? ? NSString *url = @"iOSDevTip://com.iOSStrongDemo.www";
if ([[UIApplication sharedApplication]
canOpenURL:[NSURL URLWithString:url]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
else
{
NSLog(@"can not open URL scheme iOSDevTip");
}
打開注冊iOSDevTip的APP格式為: URL Scheme://URL identifier,直接調(diào)用URL Scheme也可打開程序, URL identifier是可選的纳猪。
注冊URL Scheme就是這么簡單氧卧。下一篇會分享如何通過URL Scheme傳遞參數(shù)。demo下載地址:iOSStrongDemo
Posted by 李剛 Jul 14th, 2015 11:34 pm? ios開發(fā)
本文出處剛剛在線:http://www.superqq.com/blog/2015/07/14/xcode6-dot-4zhu-ce-url-schemebu-zou-xiang-jie/
自由轉(zhuǎn)載-請在開頭注明本文出處