成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iOS App間常用的五種通信方式

移動開發
iOS系統是相對封閉的系統,App各自在各自的沙盒(sandbox)中運行,每個App都只能讀取iPhone上iOS系統為該應用程序程序創建的文件夾AppData下的內容,不能隨意跨越自己的沙盒去訪問別的App沙盒中的內容。

iOS系統是相對封閉的系統,App各自在各自的沙盒(sandbox)中運行,每個App都只能讀取iPhone上iOS系統為該應用程序程序創建的文件夾AppData下的內容,不能隨意跨越自己的沙盒去訪問別的App沙盒中的內容。 

2435411-ed92283df31a0b12.jpeg

所以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的喚起。 

2435411-fa9fa76e86ccbce6.jpeg

典型的使用場景就是各開放平臺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用于App間通信的一個典型場景也和app的登錄相關,就是統一賬戶登錄平臺。使用同一個賬號平臺的多個app,只要其中一個app用戶進行了登錄,其他app就可以實現自動登錄不需要用戶多次輸入賬號和密碼。一般開放平臺都會提供登錄SDK,在這個SDK內部就可以把登錄相關的信息都寫到keychain中,這樣如果多個app都集成了這個SDK,那么就可以實現統一賬戶登錄了。

Keychain的使用比較簡單,使用iOS系統提供的類KeychainItemWrapper,并通過keychain access groups就可以在應用之間共享keychain中的數據的數據了。 

2435411-9e307e14335c9eed.jpeg

3、UIPasteboard

顧名思義, UIPasteboard是剪切板功能,因為iOS的原生控件UITextView,UITextField 、UIWebView,我們在使用時如果長按,就會出現復制、剪切、選中、全選、粘貼等功能,這個就是利用了系統剪切板功能來實現的。而每一個App都可以去訪問系統剪切板,所以就能夠通過系統剪貼板進行App間的數據傳輸了。

UIPasteboard的使用很簡單, 

2435411-8407837cb53f865b.jpeg

UIPasteboard典型的使用場景就是淘寶跟微信/QQ的鏈接分享。由于騰訊和阿里的公司戰略,騰訊在微信和qq中都屏蔽了淘寶的鏈接。那如果淘寶用戶想通過QQ或者微信跟好友分享某個淘寶商品,怎么辦呢? 阿里的工程師就巧妙的利用剪貼板實現了這個功能。首先淘寶app中將鏈接自定義成淘口令,引導用戶進行復制,并去QQ好友對話中粘貼。然后QQ好友收到消息后再打開自己的淘寶app,淘寶app每次從后臺切到前臺時,就會檢查系統剪切板中是否有淘口令,如果有淘口令就進行解析并跳轉到對于的商品頁面。

先復制淘口令到剪切板, 

2435411-22ead9f92c989577.jpeg

把剪切板中的內容粘貼到微信發給微信好友, 

[[215745]]

微信好友把淘口令復制到淘寶中,就可以打開好友分享的淘寶鏈接了。 

[[215746]]

4、UIDocumentInteractionController

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

首先通過調用它唯一的類方法 interactionControllerWithURL:,并傳入一個URL(NSURL),為你想要共享的文件來初始化一個實例對象。然后UIDocumentInteractionControllerDelegate,然后顯示菜單和預覽窗口。 

2435411-f97b4f6608bd9990.jpeg

效果如下, 

2435411-f3ce337ee64059fd.jpeg

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

2435411-fbbf929fb6b3f294.jpeg
責任編輯:未麗燕 來源: made_China
相關推薦

2019-11-27 10:36:11

進程通信IPC

2018-05-30 13:58:02

Linux進程通信

2022-07-04 08:29:13

electron通信

2019-05-15 08:00:00

vue組件間通信前端

2011-11-25 10:25:27

SpringJava

2023-09-06 13:58:01

負載均衡算法

2009-06-19 18:26:38

Spring事務配置

2011-02-28 13:51:30

Spring事物配置

2010-08-27 09:10:15

網絡隱私

2010-11-24 15:41:56

MySQL命令行

2022-06-16 11:01:22

數據庫SQL

2018-09-10 15:58:49

2022-12-27 14:21:42

VR

2010-08-13 13:25:53

Flex頁面跳轉

2017-07-04 16:34:33

邊緣計算方式

2022-01-13 19:25:28

服務方式TCP

2023-07-25 10:45:48

OHScrcpy鴻蒙

2009-07-29 09:36:07

無線通信接入方式

2023-07-27 07:19:24

2009-10-29 16:41:23

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产美女永久免费无遮挡 | 午夜手机在线 | 精品一区二区三区在线视频 | 亚洲国产一区二区三区在线观看 | 91偷拍精品一区二区三区 | 亚洲成人一区 | 国产成人自拍一区 | 午夜爽爽爽男女免费观看影院 | 日韩精品一区二区三区免费视频 | www.4虎影院 国产999精品久久久影片官网 | 国产在线精品一区二区三区 | 国产视频一区二区 | 日韩欧美亚洲一区 | 国产1区 | 欧美啊v在线观看 | 一区二区三区在线播放 | 日本一区二区不卡 | 亚洲精彩视频在线观看 | 国产美女精品视频 | 国产大片一区 | 亚洲精品在线免费观看视频 | 国产日韩欧美综合 | 亚洲国产精品99久久久久久久久 | 日韩在线综合 | 男女啪啪网址 | 婷婷国产一区二区三区 | 99在线观看视频 | 欧美日韩在线观看一区二区三区 | 天堂在线www | 综合久久一区 | 久久久91| 亚洲成人一二三 | 国产高清av免费观看 | 一区视频 | 亚洲欧美日韩精品久久亚洲区 | 欧美区在线观看 | 国产精品精品久久久 | 亚洲在线高清 | 亚洲最色网站 | 久久综合伊人一区二区三 | 国产第1页|