當前位置:
首頁 > 最新 > Url Scheme實現APP間通信、分享

Url Scheme實現APP間通信、分享

光的方向

 老男孩 電視劇原聲帶

三維魚樂隊 

00:00/04:36

GIF

簡介:

URL Scheme就是一個可以讓app相互之間可以跳轉的對外介面。通過給APP定義一個唯一的URL路徑來從外部快速的打開這個指定的APP,每個app的URL Scheme都是不一樣的,如果存在一樣的URL Scheme,那麼系統就會響應先安裝那個app的URL Scheme,因為後安裝的app的URL Scheme被覆蓋掉了,是不能被調用的。

應用:

第三方分享的SDK就是通過這種方式來實現分享的,我們將需要分享的數據傳遞給SDK,SDK通過OpenURL來打開第三方應用傳遞數據,返回時SDK來處理OpenUrl的參數,實現查看分享的回調。

從瀏覽器中某一頁面的點擊事件可以打開對應客戶端的某一個界面,就是通過協議 URL Scheme:// + 參數 來完成喚醒跳轉客戶端界面的。

調用微信、支付寶等客戶端完成支付的功能。

三方應用調用系統所帶的地圖軟體。

示例:

接下來就以我之前寫的UIActivityViewController系統原生分享-仿簡書分享和iOS開源小項目-WSL兩個Demo為例,讓我們看下怎麼可以讓UIActivityViewController系統原生分享-仿簡書分享喚起iOS開源小項目-WSL並進行通信、分享:也就是說讓 WSL像微信、QQ、新浪一樣支持第三方社交分享。

一、配置WSL的應用信息,添加Url Scheme

要跳轉到別人的app,就要知道別人的app的跳轉協議是什麼,需要傳入什麼參數,如果我們希望別人打開我們的app,也需要在info.plist中配置跳轉協議,然後再重寫AppDelegate中的 openUrl方法來處理邏輯參數。

給 WSL添加Url Scheme

重寫WSL中AppDelegate中的openUrl方法,當WSL被喚起時會執行openUrl方法,我們可以在方法里根據傳入的參數的做出處理。如果只想允許在特定情況下才能被喚起,比如說分享,就可以對傳入的openUrl加以驗證,符合要求return YES ,否則返回NO。

通過瀏覽器打開喚起WSL,測試一下,輸入的地址是" WSLAPP://wslmeiksjkfdfkfkfhskfhskfhskj "(Url Scheme://+ 參數字元串),參數可以為空。

GIF

二、在UIActivityViewController系統原生分享中添加事件,通過Url Scheme來喚起WSL,並傳參

三、喚起WSL之後需要做的處理

喚起WSL之後,WSL根據傳入的參數進行界面數據的處理,處理完成之後,我們需要自動返回主應用UIActivityViewController系統原生分享,同時傳遞數據處理的結果。相當於WSL回調喚起UIActivityViewController系統原生分享,過程同一、二步。

給UIActivityViewController系統原生分享 也添加Url Scheme,便於從WSL返回主應用UIActivityViewController系統原生分享。

重寫UIActivityViewController系統原生分享中AppDelegate中的openUrl方法,在返回UIActivityViewController系統原生分享應用時根據從WSL返回的數據處理結果做出反應。

以上就是通過Url Scheme實現APP間相互跳轉、傳遞數據、通信、分享功能的過程。

經過以上操作內容,小夥伴們是不是對其中的步驟有種似曾相識的感覺呢?沒錯,集成的第三方分享SDK就是通過這種方式來實現分享的,只不過它們把數據、方法都封裝到了SDK中。

GIF


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 iOS開發進階之路 的精彩文章:

TAG:iOS開發進階之路 |