今天遇到阿杰之前面试所说的一个问题,就是简单的说一下自己所知道的APP之间的通讯方式。
我张口就来:openUrl...
是啊,我貌似就记得这一种,然后我俩探讨了一下,他说还有支付宝方式的,支付宝的淘口令- copy and paste
还有就是使用Socket 通讯。其他的我俩也没想起来,今天正好有时间,那么就来稍微研究下。
【1】先说一下我们比较常用的openUrl这个操作吧
- (BOOL)openURL:(NSURL*)url NS_DEPRECATED_IOS(2_0, 10_0, "Please use openURL:options:completionHandler: instead") NS_EXTENSION_UNAVAILABLE_IOS("");
- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");
这两个方法可以说是在iOS开发中最为常见也比较强大的两个方法,可以打开其他的app,进行外部浏览器的各种操作,打电话,发邮件等等操作都是可以,也是咱们最为常见的一种方式。
【2】在阿杰的指引下,我们常用的『淘口令』,也是一种方式
通过『淘口令 令』我们可以使用特定的连接来实现
『淘口令 』实现
简单的来说就是使用 系统的UIPasteboard可以检测到系统剪切板是上的内容,然后通过正则匹配剪切板上的连接,进而在app内部打开使用。
【3】使用Socket 通讯
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。
建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API),对TCP/IP的封装,TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口;HTTP是轿车,提供了封装或者显示数据的具体形式;Socket是发动机,提供了网络通信的能力。
因为只想到了这几种,所以剩下的通过上网查询还查到了以下几种
【4】Keychain
具体的场景就是咱们常用的app验证登录,某些app可以使用微信或者支付宝登录,具体的使用就是使用了 Keychain 校验
感谢作者
文章我就不copy了,需要的同学直接点击链接文章
【5】UIDocumentInteractionController
这个在 【4】的文章中也有体现,需要的同学直接请直接查看。
UIDocumentInteractionController主要是用来实现同设备上app之间的共享文档,以及文档预览、打印、发邮件和复制等功能。它的使用非常简单.
首先通过调用它唯一的类方法 interactionControllerWithURL:,并传入一个URL(NSURL),为你想要共享的文件来初始化一个实例对象。然后UIDocumentInteractionControllerDelegate,然后显示菜单和预览窗口。
网友评论