今天,由于開(kāi)發(fā)需求的增加,應(yīng)用需要分享到更多的公眾平臺(tái),將ShareSDK的版本升級(jí)到官方最新版3.2.1。在集成的過(guò)程中,發(fā)現(xiàn)一個(gè)很奇怪的問(wèn)題:在分享到新浪微博平臺(tái)時(shí),回調(diào)表示分享已經(jīng)成功,但是大部分分享出去的內(nèi)容在新浪微博里面發(fā)送不成功,少數(shù)幾條又成功了。分享不成功的內(nèi)容新浪平臺(tái)都給出一個(gè)提示錯(cuò)誤:10006 source paramter(appkey)is missing。
通過(guò)查找資料,了解了新浪微博平臺(tái)給出的各種錯(cuò)誤的表示代碼。如圖

但是,新浪微博平臺(tái)在初始化時(shí)已經(jīng)將Appkey傳進(jìn)去了。和shareSDK的技術(shù)人員溝通了很久,暫時(shí)也沒(méi)有解決,特別寫(xiě)出來(lái)和大家交流下。以下是我的集成步驟。
1.配置各公眾平臺(tái)的白名單和URL schemes。(新浪微博的白名單因?yàn)樾枰視簳r(shí)去掉了,發(fā)現(xiàn)這問(wèn)題前肯定是添加進(jìn)來(lái)了的sinaweibo,weibosdk,weibosdk2.5,sinaweibohd)

2.初始化ShareSDK和各公眾平臺(tái)。新版本的初始化方法和之前的版本有了很大的改變。代碼如下:

3.ShareSDK有三種調(diào)分享的方法:1)使用他們系統(tǒng)的彈框,然后點(diǎn)擊各item去分享 2)調(diào)用他們的編輯界面,然后去分享 3)直接跳轉(zhuǎn)到第三方進(jìn)行反向。因?yàn)槲覀兪亲约憾x的UI,所以我選擇了第三種分享方法,如圖

該方法分享的第一個(gè)參數(shù)是分享的類型(type,SSDKPlatformTypeSinaWeibo表示新浪微博),parameters是一個(gè)NSMutableDictionary類,是分享到第三方平臺(tái)設(shè)置內(nèi)容的。在這里,說(shuō)一下,微博本來(lái)就不能分享鏈接的,他只能分享text和image的,不能像微信可以分享鏈接。微博要分享鏈接,只能寫(xiě)在text里,當(dāng)做內(nèi)容分享。分享出去后,微博會(huì)把鏈接顯示成網(wǎng)頁(yè)鏈接幾個(gè)字,點(diǎn)擊網(wǎng)頁(yè)鏈接,就可以跳轉(zhuǎn)到鏈接。[shareParams SSDKEnableUseClientShare];(允許客戶端進(jìn)行分享)新浪微博,需要加上這句代碼。到這里,我們的應(yīng)用已經(jīng)能跳轉(zhuǎn)到新浪微博并且成功將內(nèi)容分享到了新浪。但是當(dāng)我們查看新浪客戶端的時(shí)候,發(fā)現(xiàn)消息并未發(fā)送出去,而是在新浪微博個(gè)人的草稿箱里。多次測(cè)試,偶爾有發(fā)送成功的。反復(fù)比對(duì)shareSDK官方demo,并沒(méi)有差異。
為了確定是否是新浪微博客戶端的問(wèn)題,我將微博客戶端卸載,這樣點(diǎn)擊分享的時(shí)候,會(huì)跳轉(zhuǎn)到一個(gè)授權(quán)頁(yè)面,填寫(xiě)新浪微博賬號(hào)正確后直接分享了出去,查看消息也發(fā)送出去了。多次測(cè)試,都發(fā)送成功。所以,懷疑是新浪微博客戶端系統(tǒng)不穩(wěn)定性造成的。
為了避免安裝了新浪微博客戶端的用戶,點(diǎn)擊分享的時(shí)候跳轉(zhuǎn)到新浪微博客戶端發(fā)送失敗的情況。我在白名單里將新浪微博的白名單去掉。不跳到新浪微博進(jìn)行分享,暫時(shí)以這樣的方式解決這個(gè)問(wèn)題。后續(xù)會(huì)繼續(xù)跟進(jìn)這個(gè)問(wèn)題。