1. 程式人生 > >iOS開發 - 應用內開啟第三方應用並傳值

iOS開發 - 應用內開啟第三方應用並傳值

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow

也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!

               

首先說下這個功能, 應該都有接觸過。

比如,你下載了一個電子書,然後選擇開啟方式的時候,可能會看到你手機中已經安裝的閱讀類App。

或者,你的QQ收到了某個檔案,你也可以選擇本地的應用來開啟。

那這樣的功能,是怎麼實現的呢?

簡單來說。就是呼叫URL來實現第三方應用的開啟。


首先,被開啟的應用需要提供這個功能, 也就是,它需要註冊一個 URL Schemes,供第三方使用。


如果你想你的應用被呼叫, 你可以這樣設定。

在 xxxx info.plist 檔案中, 新增如下屬性

類似這樣:


注意, 這裡的URL Schemes必填, URL identifier選填。

另外,URL Schemes建議都小寫,因為之後接收到資料的時候,不區分大小寫, 都是轉為小寫。

規定的格式是   URL Schemes://URL identifier


之後, 你需要在 Appdelegate.m中新增如下程式碼, 來處理接受到請求後做出的處理

//處理URL請求- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{    NSLog(@"%@", url);        if ([[url scheme] isEqualToString:@"myurltest"])    {        //處理連結
        NSString *text = [[url host] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];        UIAlertView *myAlert = [[UIAlertView alloc]initWithTitle:@"新訊息" message:text delegate:self cancelButtonTitle:@"知道了" otherButtonTitles: nil];        [myAlert show];                return YES;    }        return NO;}

這裡我寫了個示範, 判斷是否是開啟本應用的URL, 如果是, 就彈出一個警告框,顯示傳來的資料。

當然,傳來的資料要怎麼處理, 那看你自己了。



之後, 第三方應用就可以直接呼叫開啟它了。

我們做個簡單示範, 用Safari來直接開啟。

這裡輸入myurltest://hello   表示開啟的應用的URL Schemes是 myurltest, 傳入的資料是hello



當然, 在應用中開啟,我們可以使用如下方法:


NSURL *url  = [NSURL URLWithString:@"myurltest:"];[[UIApplication sharedApplication] openURL:url];

另外, 順便Mark一下一些已知的應用的URL Schemes

你所知道好玩有趣的 iOS URL schemes 有哪些?


           

給我老師的人工智慧教程打call!http://blog.csdn.net/jiangjunshow

這裡寫圖片描述