iOS開發 - 應用內開啟第三方應用並傳值
阿新 • • 發佈:2018-11-12
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!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 有哪些?