iOS app之间常用的五种通信方式
来源:互联网 发布:c语言考试编程题题库 编辑:程序博客网 时间:2024/05/08 16:03
OS系统是相对封闭的系统,App各自在各自的沙盒(sandbox)中运行,每个App都只能读取iPhone上iOS系统为该应用程序程序创建的文件夹AppData下的内容,不能随意跨越自己的沙盒去访问别的App沙盒中的内容。
1 URL Scheme
ios常用的通信方式,app1通过openURl的方法跳转到app2,并且在url中带上想要的参数,这种场景主要用于各大平台的分享
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,那么就可以实现统一账户登录了。Keychain的使用比较简单,使用iOS系统提供的类KeychainItemWrapper,并通过keychain access groups就可以在应用之间共享keychain中的数据的数据了。
3、UIPasteboard
UIPasteboard是剪切板功能,因为iOS的原生控件UITextView,UITextField 、UIWebView,我们在使用时如果长按,就会出现复制、剪切、选中、全选、粘贴等功能,这个就是利用了系统剪切板功能来实现的。而每一个App都可以去访问系统剪切板,所以就能够通过系统剪贴板进行App间的数据传输了。
UIDocumentInteractionController主要是用来实现同设备上app之间的共享文档,以及文档预览、打印、发邮件和复制等功能。它的使用非常简单.首先通过调用它唯一的类方法 interactionControllerWithURL:,并传入一个URL(NSURL),为你想要共享的文件来初始化一个实例对象。然后UIDocumentInteractionControllerDelegate,然后显示菜单和预览窗口。
5、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在把数据传给硬件进行处理。
0 0
- iOS app之间常用的五种通信方式
- iOS App之间常用的五种通信方式及适用场景总结
- iOS日常学习 - App之间常用的五种通信方式及适用场景总结
- iOS App之间常用的五种通信方式及适用场景总结
- App之间的通信方式
- 安卓中app与service之间交互的五种方式
- ios 各对象之间的通信方式
- iOS (APP)进程间7中常用通信方式总结
- iOS App之间如何通信
- iOS开发中数组常用的五种遍历方式
- iOS平台下实现不同APP之间的通信
- iOS平台下实现不同APP之间的通信
- iOS平台下实现不同APP之间的通信
- iOS平台下实现不同APP之间的通信
- iOS中两个APP之间的跳转和通信
- iOS 两个App之间利用URLSchemes的通信
- IOS进程之间的通信方式有哪些?
- 进程之间通信的几种方式
- spark streaming三种应用场景
- c++类与对象,继承,派生的一些知识
- web前端学习(5)
- Day1:Back to school
- Node(v6.5.0 Documentation)--HTTP
- iOS app之间常用的五种通信方式
- eclipse中tomcat部署项目出现问题
- cout 输出字符串数组和其他数组时的问题
- Java-通过JDBC连接数据库
- Linux系统指定目录下安装配置Mysql 5.7.15步骤图文详解,只需5分钟搞定
- sysbench安装与 压测试mysql
- 论在世界500强企业的发展与机会
- Python 黑客 004 用Python构建一个SSH僵尸网络 01 简介
- Android 文件存储