一般にIOSの(APP)8との間の通信に使用するプロセスを要約します

 

iOSのシステムは、アプリケーションが自分のサンドボックス(サンドボックス)で実行し、比較的閉じた系である各だけで交差しないように自由に、のAppDataのフォルダの内容を作成するためのアプリケーション・プログラムのためのiPhoneアプリのiOSファイルシステム上で読むことができます他のアプリケーションサンドボックスの内容にアクセスするための独自のサンドボックス。

ここで説明する絵を書きます

アプリようので、システム間通信のiOSは比較的固定された、一般的な使用シナリオの間のアプリケーション通信および以下にまとめます。

1、URLスキーム

これは、メソッドのOpenURLのApp1でApp2のにジャンプし、URLに必要なパラメータをもたらすために、HTTP GETリクエストは、そのパラメータを渡すと少し似ている、最も一般的に使用される通信アプリ通信iOSのです。このアプローチは、最も一般的な使用法は、ターゲットApp2ののスキームを指定し、Info.plistファイルにLSApplicationQueriesSchemesにのみ元のApp1を設定することも非常に簡単であるの最も使用されている。その後、Info.plistのターゲットApp2の年代のURLタイプを設定、ことを示しています何が受け入れられたアプリのURLスキームを連想させます。

ここで説明する絵を書きます

典型的な使用シナリオでは、このような友人のマイクロチャネル円としてオープンプラットフォームSDKの共有機能は、マイクロブログを共有したり、シーンを支払うことです。例えば、旅行や作品の終わりからタクシーは、マイクロチャネルの支払いにジャンプします。

ここで説明する絵を書きます

2、キーホルダー

キーホルダーIOSのシステムは、それが本質的にデータベースsqlliteであり、安全な保管容器であり、その位置は、/private/var/Keychains/keychain-2.dbに格納されているが、それは、すべてのデータが暗号化されて保持されていますこのようなように、ユーザー名、パスワード、およびなど、さまざまなアプリケーションに機密情報を格納するために使用することができます。iOSのシステムは、キーチェーンVPNの資格情報とのWi-Fiパスワードで自分自身を保存します。これは、各アプリケーションのサンドボックスとは独立しているので、アプリケーションが削除された後も、内部情報のキーホルダーはまだ存在しています。

基于安全和独立于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间的数据传输了。 
UIPasteboard的使用很简单,

ここで説明する絵を書きます

UIPasteboard典型的使用场景就是淘宝跟微信/QQ的链接分享。由于腾讯和阿里的公司战略,腾讯在微信和qq中都屏蔽了淘宝的链接。那如果淘宝用户想通过QQ或者微信跟好友分享某个淘宝商品,怎么办呢? 阿里的工程师就巧妙的利用剪贴板实现了这个功能。首先淘宝app中将链接自定义成淘口令,引导用户进行复制,并去QQ好友对话中粘贴。然后QQ好友收到消息后再打开自己的淘宝app,淘宝app每次从后台切到前台时,就会检查系统剪切板中是否有淘口令,如果有淘口令就进行解析并跳转到对于的商品页面。

先复制淘口令到剪切板,

ここで説明する絵を書きます

把剪切板中的内容粘贴到微信发给微信好友,

ここで説明する絵を書きます

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

ここで説明する絵を書きます

4、 UIDocumentInteractionController

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在把数据传给硬件进行处理。

ここで説明する絵を書きます

6、 AirDrop

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

7、 UIActivityViewController

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

ここで説明する絵を書きます

ここで説明する絵を書きます

ここで説明する絵を書きます

8、 App Groups

読者の間でアプリや拡張共有し、同じスペース、データ共有など、同じ開発チームのグループ間のAppのアプリ、。彼らは直接、大幅にユーザーエクスペリエンスを改善し、データを共有することができれば、同じチームによって開発された複数のアプリケーション間で。

ここで説明する絵を書きます

ここで説明する絵を書きます

おすすめ

転載: www.cnblogs.com/tangyuanby2/p/11323653.html