iOS 兩個App之間利用URLSchemes的通信

iOS 兩個App之間調起通信

前言

假設需求是這樣的:由一個app1跳轉到app2之後,app2完成某項任務之後,怎麼把app2的完成信息傳到app1(自己的程序是app1),傳的是什麼類型的數據,怎麼進行解析?

邏輯

本文章使用TestApp1作爲第一個app的URL Schemes,TestApp2爲第二個app的URL Schemes。

TestApp1工程配置

如下圖,要適配iOS9.0

image

對於URL Schemes中的TestApp1是本應用提供給其它應用調用的。

TestApp2工程配置

如下圖,要適配iOS9.0

image


對於URL Schemes中的TestApp2是本應用提供給其它應用調用的。

TestApp1工程中實現代碼測試

我們首先需要判斷手機是否安裝了應用TestApp2,通過TestApp2工程公開的URL Schemes來判斷,即TestApp2://。需要傳參數時,是通過URL參數來傳的。如:TestApp2://success=1&count=100就是一個URL。

TestApp2工程中實現代碼測試

我們在- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url處理來自TestApp1應用的調用,獲取到相應的參數了。

當我們處理數據完成,需要反饋給TestApp1時,就需要調用通過TestApp1://paySuccess=1調用回到TestApp1並將狀態帶回去。

TestApp1打印日誌

說明參數從TestApp2正確的傳過來了。

TestApp2打印日誌

說明參數也能正確地從TestApp1傳過來了。

最後

最近不少朋友問到我應用之間如何相互調用,又如何傳參數的問題,在這裏統一講解了。

源代碼

如果單看文章,看不太明白,可以到github下載源代碼運行看看效果:https://github.com/CoderJackyHuang/AppCommunicationDemo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章