ios應用間通訊和分享資料的機制

來源:互聯網
上載者:User

iOS平台無法直接通過檔案系統來分享資料。

1,  使用UIDocumentInteractionController

         受到UIDocumentInteractionController的UI設計限制,其只能支援最多6個第三方應用,
IOS6上UIDocumentInteractionController被拋棄了,取而代之的是UIActivityViewController,它提供了更靈活的解決方案

 

2,  使用UIActivityViewController

        上面提到了第一種方案在iOS6被拋棄了,取代方案就是UIActivityViewController,因此這和第一種方案非常類似。在UI方面通過分頁面板解決了最多6個第三方應用的問題,另外你可以通過建立自己的UIActivity子類來提供客制化的服務

 

3,  使用KeychainGroup Access

        自iOS3.0始我們在同一家族的App間分享Keychain資料,這裡說的同一家族的App指的是具有相同Bundle
Seed ID的應用[蘋果制定的應用ID是由兩部分組成,<Bundle Seed ID>.<Bundle
Identifier>]。

 

4,  客制化的URLScheme

        允許應用間通過URL進行資料轉送。URL Scheme是iOS平台目前應用間通訊的常用解決方案。

 

5,  Web Service

        通過第三方服務(例如dropbox)或者自己定製的伺服器來進行資料分享,[當然也可以在本地App內建立Web
Server,但是如果App切入後台之後,尤其是記憶體吃緊時,一切就變得不靠譜了]。

 

6,  UIPasteBoard + URL Scheme

        上面的方案或許足以滿足你的應用需求,但這些方案或多或少存在某些明顯短板,都為另一潛在的解決方案留有餘地。如果你想精確的控制App間資料通訊並且不受離線的影響,可以選擇UIPasteBoard+URL Scheme的方案。[遵循x-callback-url規範的應用iPGMail就使用了這種方案]

         像上面提到過的URL Scheme方案一樣,我們可以通過URL來進行應用間通訊,而對於資料的傳輸,可以使用剪貼簿來進行,可以選擇成熟的資料結構序列化還原序列化方案來封裝通訊及資料轉送協議,可以定義回調方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.