iOS應用之間的跳轉 - 第一篇

從以下三個方面介紹:

  • app應用間跳轉的原理解析
  • 如何實現兩個app應用之間的跳轉
  • 如何實現兩個app之間跳轉到指定界面

app應用間跳轉的原理解析

從一個應用跳轉到另一個應用大家並不陌生,最常見的莫過於第三方登錄,支付寶支付等等。這些東西大家都耳熟能詳,集成進來也很簡單,跟着第三方sdk集成文檔一步步走下來就是了,通常sdk集成文檔都需要你在工程中配置一堆堆的東西。

比如下面這個,第三方登錄或分享需要你配置的URL Schemes

所謂的配置 URL Schemes,就是在配置兩個app之間跳轉的協議。

其他必要的概念

1.協議:雙方互相遵守的一種規範,只有遵守共同的協議規範才能進行彼此的通信。比如我們最熟悉的網絡協議——http協議。
2.URL:資源的路徑或地址。在IOS中有一個專門用於包裝資源路徑的類——NSURL。
3.一個完整URL的組成

例如

http://93.12.14.1/path?page=100
“http://”: 協議類型
“123.0.0.1”: 服務器ip地址
“/path”: 資源存放的是路徑
“page=100”: 請求的參數

代碼示例:

NSURL *url = [NSURL           URLWithString:@"http://93.12.14.1/path?page=100"];
NSLog(@"協議 = :%@",url.scheme);
NSLog(@"域名 = :%@",url.host);
NSLog(@"路徑 = :%@",url.path);
NSLog(@"參數 = :%@",url.query);

跳轉原理

在iOS中,從一個app打開另一個app,這必然牽扯到兩個app之間的交互和通信,像這種涉及到整個應用程序層面的事情,蘋果有一個專門的類來管理——UIApplication。

/**
 通過應用程序打開一個資源路徑
@param url 資源路徑的地址
@return 返回成功失敗的信息
 */
- (BOOL)openURL:(NSURL*)url;

它的一些我們非常熟悉的用法:

//撥打系統電話
 NSURL *url = [NSURL URLWithString:@"tel://10086"];
 [[UIApplication sharedApplication] openURL:url];

//發送系統短信
 NSURL *url = [NSURL URLWithString:@"sms://1383838438"];
 [[UIApplication sharedApplication] openURL:url];

這裏執行的跳轉系統電話以及跳轉系統短信,其實就是兩個app之間的跳轉,實現原理是一樣的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章