人和人之间的通信这个很容易理解,用语言交流就可以完成了,你会看到,App它们之间也是有通信的,本文来给大家讲解一下,iOS常用的几个通信方式是哪些,感兴趣的朋友们可以一起来了解一下。
我们知道iOS系统是相对封闭的系统,并且App是各自在各自的沙盒(sandbox)中运行,因为每个App它都只能是读取iPhone上iOS系统为该应用程序程序创建的文件夹AppData下的内容,是不能随意跨越自己的沙盒去访问别的App沙盒中的内容,这个原理我们是需要知道的。
第一:URL cheme
它是ios常用的通信方式,app1通过openURl的方法跳转到app2,并且在url中带上想要的参数,该场景是用于各大平台的一个分享。
第二:Key chain
在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,因此是可以实现统一的账户登录。Keychain使用较简单,使用iOS系统提供的类KeychainItemWrapper,并通过keychainAccessgroups就可以在应用之间共享keychain中的数据的数据了。
第三:UIPasteboard
UIPasteboard它是剪切板的一个功能,因为在iOS的原生控件中UITextView,UITextField、UIWebView,使用时如果长按,就会出现复制、剪切、选中、全选、粘贴等基本的功能,实际上这个就是利用了系统剪切板功能来实现的。因此每一个App都可以去访问系统剪切板,因此是可以通过系统剪贴板进行App之间的数据传输了。
第四:UIDocumentInteractionController
UIDocumentInteractionController它主要是用来实现同设备上app之间的共享文档,例如文档的预览、打印、发邮件和复制等基本的一些功能。使用起来也是简单.首先是通过调用它唯一的类方法interactionControllerWithURL:,然后是传入一个URL(NSURL),为你想要共享的文件来初始化一个实例对象。然后UIDocumentInteractionControllerDelegate,最后是显示菜单和预览窗口。
5、localsocket
这种方式比较少见,它也是很容易被iOS开发者所忽略,但它也是实用的一种方法。原理也是比较简单,一个App1在本地的端口port1234进行TCP的bind和listen,另外一个App2就会在同一个端口port1234发起TCP的connect连接,通过这样就建立正常的TCP连接,进行TCP通信了,传输你想要的数据了。
该方式最大的特点就是比较灵活,只要是连接保持着,就可以随时传输数据,而且带宽足够大。缺点就是因为iOS系统在任意时刻只有一个app在前台运行,就要通信的另外一方具备在后台运行的权限,比如是像导航或者音乐类app。它是常用使用场景就是某个App1具有特殊的能力,比如是能够跟硬件进行一个通信,并且是在硬件上处理相关的一些数据。而App2则没有该能力,但是它是能给App1提供相关的一个数据,这样APP2跟App1建立本地socket连接,传输数据到App1,然后App1再把数据传给硬件进行处理,复杂的一个过程,理解起来有一点的难度。
ios之间的通信是一个复杂,如果是刚入门的朋友们或者有些不太理解,在这5种的通信方式中,每一个的作用都是不一样的,要掌握它的原理并不是一件简单的事情,在移动开发的过程中还需进一步的深入研究。
¥398.00
¥199.00
¥179.00
¥98.00