美文网首页
iOS 进程间通信的8种方式

iOS 进程间通信的8种方式

作者: 林鹏_dev | 来源:发表于2021-06-08 08:48 被阅读0次

    1、URL scheme

          这个是iOS APP通信最常用到的通信方式,APP1通过openURL的方法跳转到APP2,并且在URL中带上想要的参数,有点类似HTTP的get请求那样进行参数传递。这种方式是使用最多的最常见的,使用方法也很简单只需要源APP1在info.plist中配置LSApplicationQueriesSchemes,指定目标App2的scheme;然后再目标App2的info.plist 中配置好URLtypes,表示该App接受何种URL scheme的唤起。

    2、Keychain

          iOS 系统的keychain是一个安全的存储容器,它本质上就是一个sqlite数据库,它的位置存储在/private/var/Keychains/keychain-2.db,不过它索八坪村的所有数据都是经过加密的,可以用来为不同的APP保存敏感信息,比如用户名,密码等。iOS系统自己也用keychain来保存VPN凭证和WiFi密码。它是独立于每个APP的沙盒之外的,所以即使APP被删除之后,keychain里面的信息依然存在

    3、UIPasteBoard

          uipasteboard是剪切板功能,因为iOS 的原生空间UItextView,UItextfield,UIwebView ,我们在使用时如果长按,就回出现复制、剪切、选中、全选、粘贴等功能,这个就是利用系统剪切板功能来实现的。

    4、UIDocumentInteractionController

          uidocumentinteractioncontroller 主要是用来实现同设备上APP之间的贡献文档,以及文档预览、打印、发邮件和复制等功能。

    5、Local socket

        原理:一个APP1在本地的端口port1234 进行TCP的bind 和 listen,另外一个APP2在同一个端口port1234发起TCP的connect连接,这样就可以简历正常的TCP连接,进行TCP通信了,然后想传什么数据就可以传什么数据了

    NSMatchPort进程通信就是该种方式

    6、AirDrop

          通过 Airdrop实现不同设备的APP之间文档和数据的分享

    7、UIActivityViewController

          iOS SDK 中封装好的类在APP之间发送数据、分享数据和操作数据

    8、APP Groups

          APP group用于同一个开发团队开发的APP之间,包括APP和extension之间共享同一份读写空间,进行数据共享。同一个团队开发的多个应用之间如果能直接数据共享,大大提高用户体验.

    CFNotificationCenterRef是iOS 进程间通信的一种方式,是一种通知的机制,适用于container app 与 extension app进行通信。

    使用之前,需要为container app与extension app设置 App Group,这样才能接收到彼此发送的进程间通知。

    进程间通信如果需要传递复杂的数据,可以使用第三方库MMWormhole

    相关文章

      网友评论

          本文标题:iOS 进程间通信的8种方式

          本文链接:https://www.haomeiwen.com/subject/yuhxeltx.html