進(jìn)程間的通信方式
每個(gè) APP 都由一個(gè)進(jìn)程進(jìn)行維護(hù)湿蛔,iOS 是相對(duì)封閉的系統(tǒng),每個(gè) APP 都有對(duì)各自的沙盒(Sandbox)瞭亮,每個(gè) APP 都只能讀到 iPhone 上 iOS 系統(tǒng)為該應(yīng)用程序創(chuàng)建的文件夾 AppData 下的內(nèi)容,不能隨意跨域自己的沙盒去訪(fǎng)問(wèn)別的沙盒中的內(nèi)容
URL Scheme
APP_A 通過(guò) openURL 的方式跳轉(zhuǎn)到 APP_B,并且在 URL 中帶上想要的參數(shù)党晋,需要分別在 APP_A 和 APP_B 配置 URLScheme
KeyChain
安全的存儲(chǔ)容器、本質(zhì)上是一個(gè) sqllite 數(shù)據(jù)庫(kù)徐块,所有的數(shù)據(jù)均經(jīng)過(guò)加密存儲(chǔ)未玻,可以用來(lái)為不同的 app 保存敏感信息,即使 APP 刪除后胡控,KeyChain 依然存在
{
KeyChainItemWrapper: identifier扳剿、accessGroup {
kSecAttrAccount: value1,
kSecValueData: value2
}
}
UIPasteboard
系統(tǒng)粘貼板
UIDocumentInteractionController
用來(lái)實(shí)現(xiàn)同設(shè)備上 app 之間的共享文檔,以及文檔瀏覽昼激、打印庇绽、發(fā)郵件、復(fù)制等功能
local socket
通過(guò)本地端口橙困,APP_A 開(kāi)啟某個(gè)端口進(jìn)行 TCP bind 和 listen敛劝,APP_B 對(duì)該端口進(jìn)行 TCP Connect,缺點(diǎn)需要另外一個(gè)應(yīng)用程序狈子睿活
AirDrop
支持不同設(shè)備的 APP 之間的文檔和數(shù)據(jù)分享
UIActivityViewController
發(fā)送數(shù)據(jù)夸盟、分享數(shù)據(jù)和操作數(shù)據(jù)
APP Groups
利用 idenfitier 同個(gè)開(kāi)發(fā)團(tuán)隊(duì)開(kāi)發(fā)的 App 之間,包括 APP 和 Extension 之間共享一份讀寫(xiě)空間進(jìn)行數(shù)據(jù)共享