14.iOS原生分享:UIActivityViewController,分享到微信失敗
前言: 因為公司業務的需要,微信Api提供的一次分享一張圖片已經滿足不了,故而使用系統分享UIActivityViewController
,其原理很簡單:選中多圖--->系統拉起微信遠端分享頁面--->多圖分享成功。在實際開發中確實也遇到不少的大大小小的問題,這裡簡單描述一下,並且附上我的並不完美的解決辦法(因為沒有根治)。
遇到的問題:
1 分享九宮格圖片時,出現亂序。
問題現象:直接將九張圖片陣列通過[[UIActivityViewController alloc] initWithActivityItems:imageArray applicationActivities:nil]
進行分享,大多數時候朋友圈中的圖片順序和圖片陣列的順序並不相同。
產生原因:不清楚,有誰知道請留言或者私信告訴我,我想完全解決這個問題。
處理方案:採取迂迴戰術,定義UIActivityItemSource
的類,然後將圖片和(快取到本地的)圖片地址,定義為子類的基本屬性,然後分享子類的陣列。
處理結果:很大程度上解決了亂序的問題,但是沒有根治!
2 分享過程中讀條過慢,或者直接出現分享失敗請重試。
問題現象:在微信遠端分享頁面中點發表或者傳送時候,出現傳送進度條,讀條過慢後出現分享失敗,點選重試後,大概率成功。
產生原因:個人覺得是因為分享的時候,實際上是給微信傳送一個請求包,該請求失敗導致,大多數情況是由於網路狀況或者請求包過大導致。
處理方案:程式碼中只能通過儘量減少請求包的體積來處理,例如處理圖片尺寸大小、圖片質量大小(個人摸索的圖片處理問題將在最後描述),儘量一次分享不要太多圖片。
處理結果:基本解決分享不成功問題(偶爾偶爾出現不成功)。
3 分享過程中呼叫不起微信遠端分享頁面。
問題現象:呼叫起系統分享頁面後,點選微信圖示,不彈出微信遠端分享頁面,或者一閃而過,控制檯報dismissVC
。
產生原因:個人分析有兩個原因,原因1,過多的建立WINDOWS
檢視,導致遠端頁面找不到所要"依附"的檢視,聽說官方的說法是,只能保證有一個WINDOWS
檢視才能載入成功(我遇到的不是這個原因);原因2,圖片的尺寸過大、圖片的質量過大導致。
處理方案:程式碼中只能通過減少WINDOWS
檢視,減少請求包的體積來處理,例如處理圖片尺寸大小、圖片質量大小(個人摸索的圖片處理問題將在最後描述),儘量一次分享不要太多圖片。
處理結果:基本解決分享不成功問題(目前沒有遇到呼叫不起的反饋)。
PS 圖片處理上的個人心得
如果是方圖,推薦尺寸不要超過 750*750,圖片質量不要超過300K;
如果是長圖或者大圖,要注意圖片質量不要超過200K;
以上是個人總結,如果有哪裡不正確或者有更好的解決方法方案,還請在留言區或者私信告訴一下,共同成長。
感謝。
相關文章
- UIActivityViewController分享視訊到第三方AppUIViewControllerAPP
- MAA switchover失敗經歷分享
- 記一次微信自定義分享debug均為true但是分享失敗的經歷
- 微信分享到朋友圈
- APICloud分享圖片到微信APICloud
- IOS 系統自帶的分享功能之 UIActivityViewControlleriOSUIViewController
- 微信分享
- 友盟整合(十二) —— 幾個遇到的坑之HTTP分享到微博失敗(二)HTTP
- 微信自定義分享到朋友圈APIAPI
- 微信開發 分享功能 php,自定義微信分享功能PHP
- 分享為什麼不加微信分享呀
- 創業啟示錄:創業失敗報告分享(上)創業
- 微信公眾號-- 微信分享功能(分享到朋友和朋友圈顯示圖片和簡介)
- 微信分享 分享朋友圈 分享騰訊微博 發給朋友
- 微信語音分享
- 微信分享 - 開荒
- 知識分享--雲原生
- php實現的微信分享到朋友圈並記錄分享次數功能PHP
- 微信簽到有禮上線,線上搭建方法分享
- 監測Linux上失敗的登入嘗試方法分享Linux
- 看完,如果你不分享,是我的失敗!--超好文章!
- 實現微信分享功能
- VUE專案微信分享Vue
- meteor 實現 微信分享
- 再一次MAA環境下switchover失敗經驗分享
- 大學生創業分享:手遊團隊失敗的4個教訓創業
- 分享100個原生JavaScript技巧JavaScript
- 微信分享(移動web端)Web
- 微信分享測試步驟
- 微信分享自定義實現
- 分享一篇Linux ipv6模組載入失敗解決方法Linux
- 【知識分享】伺服器連線失敗的原因及解決辦法伺服器
- 微信封殺朋友圈滴滴紅包分享,損失最大的會是誰?
- docker push到本地倉庫失敗Docker
- Android逆向之旅--微信封了抖音分享功能,而我要把短視訊成功分享到朋友圈!...Android
- 分享微信域名檢測API介面API
- 自定義QQ和微信分享卡片
- uniapp h5微信分享APPH5