美文网首页
进程间通讯方式

进程间通讯方式

作者: 牛奶红茶 | 来源:发表于2021-03-30 10:44 被阅读0次
进程间通讯方式

1.URL Scheme(外链)

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

2.KeyChain(钥匙串)

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

基于安全和独立于app沙盒的两个特性,Keychain主要用于给app保存登录和身份凭证等敏感信息,这样只要用户登录过,即使用户删除了app重新安装也不需要重新登录。

那Keychain用于App间通信的一个典型场景也和app的登录相关,就是统一账户登录平台。使用同一个账号平台的多个app,只要其中一个app用户进行了登录,其他app就可以实现自动登录不需要用户多次输入账号和密码。一般开放平台都会提供登录SDK,在这个SDK内部就可以把登录相关的信息都写到keychain中,这样如果多个app都集成了这个SDK,那么就可以实现统一账户登录了

3.UIPasteboard(粘贴版)

UIPasteboard是剪切板功能,因为iOS的原生控件UITextView,UITextField 、UIWebView,我们在使用时如果长按,就会出现复制、剪切、选中、全选、粘贴等功能,这个就是利用了系统剪切板功能来实现的。而每一个App都可以去访问系统剪切板,所以就能够通过系统剪贴板进行App间的数据传输了

4.UIDocumentInteractionConntroller(文档系统)

UIDocumentInteractionController主要是用来实现同设备上app之间的共享文档,以及文档预览、打印、发邮件和复制等功能。它的使用非常简单.

首先通过调用它唯一的类方法 interactionControllerWithURL:,并传入一个URL(NSURL),为你想要共享的文件来初始化一个实例对象。然后UIDocumentInteractionControllerDelegate,然后显示菜单和预览窗口

5.App Groups(应用组)

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

6.Local socket(套接字)

这种方式不太常见,也是很容易被iOS开发者所忽略但是特别实用的一种方法。它的原理很简单,一个App1在本地的端口port1234进行TCP的bind和listen,另外一个App2在同一个端口port1234发起TCP的connect连接,这样就可以建立正常的TCP连接,进行TCP通信了,那么就想传什么数据就可以传什么数据了。

这种方式最大的特点就是灵活,只要连接保持着,随时都可以传任何相传的数据,而且带宽足够大。它的缺点就是因为iOS系统在任意时刻只有一个app在前台运行,那么就要通信的另外一方具备在后台运行的权限,像导航或者音乐类app。

它是常用使用场景就是某个App1具有特殊的能力,比如能够跟硬件进行通信,在硬件上处理相关数据。而App2则没有这个能力,但是它能给App1提供相关的数据,这样APP2跟App1建立本地socket连接,传输数据到App1,然后App1在把数据传给硬件进行处理

7.AipDrop

通过AirDrop实现不同设备的App之间文档和数据的分享;

8.UIActivityViewController

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

相关文章

  • 进程间通讯方式

    1.URL Scheme(外链) 这个是IOS app通信最常用到的通信方式,APP1通过openURL的方式跳转...

  • android进程间通讯(3)--使用socket

    android进程间通讯(3)–使用Socket 前言:本文记录android进程间通讯的另一种通讯方式–Sock...

  • iOS进程间通讯方式

    iOS 进程间通讯方式: 现在应该还多了一种:Unversal Link(通用链接) 解释 URL Scheme这...

  • 【充电】《Nginx核心知识100讲》nginx 共享内存

    所有worker进程协同工作的关键:共享内存 1.nginx 进程间的通讯方式 nginx进程间通讯有两种,信号跟...

  • 进程间通讯

    一、进程间通讯的方式进程间通讯的方式有很多,常用的有共享内存(内存映射文件、共享内存DLL、剪切板等)、命名管道和...

  • Android Binder

    进程间通讯 1. 操作系统的进程间通讯 进程间通讯 根据名字描述就是进程之间的信息交换进程间的互斥和同步 由于交换...

  • 进程间通讯

    进程间通讯原理 现代操作系统的运行模式都是在保护模式。进程运行在虚拟内存中,进程之间相互隔离,进程成为了操作系统分...

  • 进程间通讯

    本地的进程间通信(IPC)有很多种方式,但可以总结为下面4类: 消息传递(管道、FIFO、消息队列)同步(互斥量、...

  • 进程间通讯

    经典实现 1、文件共享 两个进程约定磁盘空间上的某个文件为信息交互的媒介,这种情况要注意不同进程间访问共享文件的同...

  • Android AIDL教程

    部分文档资料采用了郭林文章 进程间通讯方式 Android 进程间通信有以下几种方案可选 Bundle file ...

网友评论

      本文标题:进程间通讯方式

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