從以下三個方面介紹:
- 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之間的跳轉,實現原理是一樣的。