5、local socket
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?
iOS体系是相对封闭的体系,App各安闲各自的沙盒(sandbox)中运行,每个App都只能攫取iPhone上iOS体系为该应用法度榜样法度榜样创建的文件夹AppData下的内容,不克不及随便跨越本身的沙盒去拜访其余App沙盒中的内容。

所以iOS 的体系中进行App间通信的方法也比较固定,常见的app间通信方法以及应用处景总结如下。
1、URL Scheme
这个是iOS app通信最常用到的通信方法,App1经由过程openURL的办法跳转到App2,并且在URL中带上想要的参数,有点类似http的get请求那样进行参数传递。这种方法是应用最多的最常见的,应用办法也很简单只须要源App1在info.plist中设备LSApplicationQueriesSchemes,指定目标App2的scheme;然后在目标App2的info.plist中设备好URL types,表示该app接收何种URL scheme的唤起。

典范的应用处景就是各开放平台SDK的分享功能,如分享到微信同伙圈微博等,或者是付出场景。比如大年夜滴滴打车停止行程跳转到微信进行付出。
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的应用比较简单,应用iOS体系供给的类KeychainItemWrapper,并经由过程keychain access groups就可以在应用之间共享keychain中的数据的数据了。

先复制淘口令到剪切板,

3、UIPasteboard
顾名思义, UIPasteboard是剪切板功能,因为iOS的原生控件UITextView,UITextField 、UIWebView,我们在应用时如不雅长按,就会出现复制、剪切、选中、全选、粘贴等功能,这个就是应用了体系剪切板功能来实现的。而每一个App都可以去拜访体系剪切板,所以就可以或许经由过程体系剪贴板进行App间的数据传输了。
UIPasteboard的应用很简单,

UIPasteboard典范的应用处景就是淘宝跟微信/QQ的链接分享。因为腾讯和阿里的公司计谋,腾讯在微信和qq中都樊篱了淘宝的链接。那如不雅淘宝用户想经由过程QQ或者微信跟石友分享某个淘宝商品,怎么办呢? 阿里的工程师就奇妙的应用剪贴板实现了这个功能。起首淘宝app中将链接自定义成淘口令,引导用户进行复制,并去QQ石友对话中粘贴。然后QQ石友收到消息后再打开本身的淘宝app,淘宝app每次大年夜后台切到前台时,就会检查体系剪切板中是否有淘口令,如不雅有淘口令就进行解析并跳转到对于的商品页面。
那Keychain用于App间通信的一个典范场景也和app的登录相干,就是同一账户登录平台。应用同一个账号平台的多个app,只要个一一个app用户进行了登录,其他app就可以实现主动登录不须要用户多次输入账号和暗码。一般开放平台都邑供给登录SDK,在这个SDK内部就可以把登录相干的信息都写到keychain中,如许如不雅多个app都集成了这个SDK,那么就可以实现同一账户登录了。
把剪切板中的内容粘贴到微信发给微信石友,

微信石友把淘口令复制到淘宝中,就可以打开石友分享的淘宝链接了。

4、UIDocumentInteractionController
UIDocumentInteractionController主如果用来实现同设备上app之间的共享文档,以及文档袈浃览、打印、发邮件和复制等功能。它的应用异常简单.
起首经由过程调用它独一的类办法 interactionControllerWithURL:,并传入一个URL(NSURL),为你想要共享的文件来初始化一个实例对象。然后UIDocumentInteractionControllerDelegate,然后显示菜单和预览窗口。

效不雅如下,

这种方法不太常见,也是很轻易被iOS开辟者所疏溘然则特别实用的一种办法。它的道理很简单,一个App1在本地的端口port1234进行TCP的bind和listen,别的一个App2在同一个端口port1234提议TCP的connect连接,如许就可以建立正常的TCP连接,进行TCP通信了,那么就想传什么数据就可以传什么数据了。
推荐阅读
关于编程工作有很多很不错的面试谜题。新年之际,我把压箱底儿的一道好题,同时也是传说中谷歌雇用官最爱好问的一道题找出来了!今天我梅蓟?好八一八这道题,如不雅你本年正好想去谷歌面试,可以抓紧多读几遍!(绝对不>>>详细阅读
本文标题:iOS App间常用的五种通信方式
地址:http://www.17bianji.com/lsqh/40183.html
1/2 1