當前位置:
首頁 > 最新 > 有關iOS分享的兩個小實踐

有關iOS分享的兩個小實踐

iOS開發中,我們經常會用到分享這個功能。我們希望把自己的APP裡面好東西通過分享的渠道推廣出去,或者看到好的東西我們希望通過分享到APP與好友共享。為了實現這種功能,業界常用的做法是通過集成SDK(如微信)或第三方(如友盟分享)去做,但是這樣做有個弊端就是我們得配置所有想分享的平台的scheme,分享的時候我們得調起相應的APP。怎麼樣做到像Safari那樣分享呢?

這裡有兩個問題:1,怎麼讓自己的APP出現在Safari分享欄的選項里,讓用戶可以直接通過這種方式分享內容到咱們自己的APP。2、在咱們自己的APP里分享時怎麼像Safari一樣分享,而不是集成SDK。

Share extensions

share extentsion的出現解決了咱們的第一個問題,它的(基礎)使用也特別簡單。先按照的步驟添加Share Extension。這時候我們會發現active scheme已經自動變成咱們剛才新建的target了,而不是原來的target了(如下圖)。

點擊run,然後選擇一個APP(這裡選的Safari)作為Host app,運行之後發現測試機已經自動啟動Safari了。我們隨便打開一個網頁,然後點分享,驚喜出現了,咱們的APP已經靜靜的躺在分享欄的選項里了,見下圖左圖。

點擊Post,再啟動咱們自己的APP,可以發現剛才在瀏覽器分享的內容已經展示出來了(這裡用到了APP Group服務,此處暫且略過不提),見上圖右圖。

新建的extension里有個默認的,它繼承於,關於分享的操作都在這裡完成。在分享之前,我們可以通過判斷來決定是否可以分享,比如如果文字里包含「皇上」兩個字,則不讓分享,Post按鈕置灰,如下圖。

代碼如下:

分享的數據處理則主要是在里處理:

UIActivityViewController和SLComposeViewController

這兩個類則可以為我們解決第二個問題。不同的是,把支持的分享的APP和操作都展示出來,讓我們選擇,跟Safari界面類似,而則是直接分享給目標APP。如下圖,左圖點擊分享用的,所以出現的一個選擇界面,右圖點微信通過直接分享給微信。

代碼分別如下:

TODO

因為是一時興起的小實踐,所以還有很多細節有待深入優化。比如分享界面的自定義,比如怎麼同時分享標題、內容、圖片和URL,再比如里分享內容的組合和分享目標平台或操作的取捨展示,等等。所以此篇小記錄權當是拋磚引玉,展示這幾個功能的簡單實現,如果想實現一些更好的進階優化,可以再多看看官方文檔,深入研究。

參考鏈接

Share

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

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


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

為做夢而睡覺 為圓夢而醒來
「塗抹式水光針」和「注射式水光針」相比,有什麼區別?

TAG:全球大搜羅 |