iOS App之間的通訊方式

iOS App之間的通訊方式

一、 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的分享功能,如分享到微信朋友圈微博等,或者是支付場景。好比從滴滴打車結束行程跳轉到微信進行支付。微信

二、UIPasteboard

剪切板app

三、UIDocumentInteractionController

UIDocumentInteractionController主要是用來實現同設備上app之間的共享文檔,以及文檔預覽、打印、發郵件和複製等功能。它的使用很是簡單.socket

四、 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在把數據傳給硬件進行處理。get

五、App Groups

App Group用於同一個開發團隊開發的App之間,包括App和Extension之間共享同一份讀寫空間,進行數據共享。同一個團隊開發的多個應用之間若是能直接數據共享,大大提升用戶體驗。io

相關文章
相關標籤/搜索