iOS ipc(进程间通信)

iOS中进程(即不同的APP)间通信的方式:

  • Port (local socket)

    • NSMachPort : Foundation层

    • CFMachPort : Core Foundation层 ,使用方式

    • Mach Ports : mach 内核层(线程、进程都可使用它进行通信)

    • 原理:
      一个App1在本地的端口port1234进行TCP的bind和listen,另外一个App2在同一个端口port1234发起TCP的connect连接,这样就可以建立正常的TCP连接,进行TCP通信了,那么就想传什么数据就可以传什么数据了。

    • 特点
      灵活,只要连接保持着,随时都可以传任何相传的数据,而且带宽足够大

    • 缺点
      要通信的另外一方具备在后台运行的权限,像导航或者音乐类app

  • scheme
    使用open URL 打开app的时候,可以带参数。

  • key chain
    需要交互的数据存放在钥匙串中,也可以实现不同的app进行数据传递。


    iOS ipc(进程间通信)_第1张图片
    keychain.jpg
  • 剪切板
    UIPasteboard的使用


    iOS ipc(进程间通信)_第2张图片
    pasteboard.jpg
  • UIDocumentInteractionController
    UIDocumentInteractionController主要是用来实现同设备上app之间的共享文档,以及文档预览、打印、发邮件和复制等功能
    简单使用:
    首先通过调用它唯一的类方法 interactionControllerWithURL:,并传入一个URL(NSURL),为你想要共享的文件来初始化一个实例对象。然后UIDocumentInteractionControllerDelegate,然后显示菜单和预览窗口。

iOS ipc(进程间通信)_第3张图片
documnetInteraction.jpg

出处

你可能感兴趣的:(iOS ipc(进程间通信))