註冊URL Scheme步驟詳解

本文出處剛剛在線:http://www.superqq.com/blog/2015/07/14/xcode6-dot-4zhu-ce-url-schemebu-zou-xiang-jie/

URL Scheme的做用

咱們都知道蘋果手機中的APP都有一個沙盒,APP就是一個信息孤島,相互是不能夠進行通訊的。可是iOS的APP能夠註冊本身的URL Scheme,URL Scheme是爲方便app之間互相調用而設計的。咱們能夠經過系統的OpenURL來打開該app,並能夠傳遞一些參數。git

例如:你在Safari裏輸入www.alipay.com,就能夠直接打開你的支付寶app,前提是你的手機裝了支付寶。若是你沒有裝支付寶,應該顯示的是支付寶下載界面,點擊會跳到AppStore的支付寶下載界面。github

URL Scheme必須能惟一標識一個APP,若是你設置的URL Scheme與別的APP的URL Scheme衝突時,你的APP不必定會被啓動起來。由於當你的APP在安裝的時候,系統裏面已經註冊了你的URL Scheme。xcode

通常狀況下,是會調用先安裝的app。可是iOS的系統app的URL Scheme確定是最高的。因此咱們定義URL Scheme的時候,儘可能避開系統app已經定義過的URL Scheme。app

註冊URL Scheme

1.在info.plist裏添加URL types

每個項目裏面都會有一個info.plist配置文件。找到info.plist,右鍵選擇Add Row,而後選擇URL types。如圖所示:ide

url1

2.添加URL Schemes

添加完URL types,點擊展開。右鍵選擇Add Row,添加URL Schemes:測試

url2

3.設置URL Schemes

設置URL Schemes爲iOSDevTipui

url3

4.設置URL Identifier

URL Identifier是自定義的 URL scheme 的名字,通常採用反轉域名的方法保證該名字的惟一性,好比 com.iOSStrongDemo.wwwurl

url4

添加成功啓動提示

爲了方便測試,咱們在AppDelegate裏面添加一個UIAlertView,當app被成功打開時,會提出提示:spa

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL*)url
{
    // 接受傳過來的參數
    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

既然已經配置好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,直接調用URL Scheme也可打開程序, URL identifier是可選的。

註冊URL Scheme就是這麼簡單。下一篇會分享如何經過URL Scheme傳遞參數。demo下載地址:iOSStrongDemo

相關文章
相關標籤/搜索