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之间的跳转,实现原理是一样的。

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