微信6.6.7版本后圖文分享無標(biāo)題的分析

Update

微信升級(jí)到6.7.3以后多圖分享已經(jīng)徹底不能用了,具體可參考我的另一篇文章《微信6.7.3版本后無法多圖分享的分析

Update

無標(biāo)題的問題可以通過AccessibilityService解決,親測(cè)有效。但不是很推薦這種解決辦法。

背景

之前做的一個(gè)安卓app可以把多張圖片和文字標(biāo)題分享到微信朋友圈。最近微信版本升級(jí)到6.6.7以后發(fā)現(xiàn)圖片還可以分享,但是標(biāo)題不見了。如圖所示:


多圖分享到朋友圈

紅框內(nèi)本來應(yīng)該顯示的是和圖片一起分享過去的一段文字?,F(xiàn)在顯示不出來了。也有一些同學(xué)通過后臺(tái)問我這個(gè)問題。那么讓我們來看看微信做了什么樣的改動(dòng)導(dǎo)致這個(gè)現(xiàn)象的。

圖文分享的代碼

我們先來看看圖文分享到朋友圈的代碼

Intent intent = new Intent(Intent.ACTION_SEND);
        intent.setType("image/*");
        ComponentName comp = new ComponentName("com.tencent.mm",
                "com.tencent.mm.ui.tools.ShareToTimeLineUI");
        intent.setComponent(comp);
        intent.setAction("android.intent.action.SEND_MULTIPLE");
        intent.setType("image/*");
        //這個(gè)就是標(biāo)題了
        intent.putExtra("Kdescription", “多圖分享的標(biāo)題”);
        intent.putExtra(Intent.EXTRA_STREAM, paths);
        context.startActivity(intent);

可見微信那邊的接收方是"com.tencent.mm.ui.tools.ShareToTimeLineUI"。標(biāo)題就是放在"Kdescription"這個(gè)字段里傳給微信的。標(biāo)題顯示不出來,那肯定是微信新版本對(duì)"Kdescription"的解析發(fā)生了變化。

朔源

為了搞清楚問題出在哪里,我們需要看一下微信6.6.7和之前的版本有什么變化。那么,讓我們請(qǐng)出JADX大法師。先讓大法師對(duì)老版本的微信施法,這里我們選擇微信6.6.6。一陣煙霧之后。讓我們看看ShareToTimeLineUI這個(gè)類是如何獲取到文本的。

老版本獲取標(biāo)題

函數(shù)s.j()就是intent.getStringExtra()包了一層。
那6.6.7版本的微信這里變成什么樣了呢?我們?cè)僬?qǐng)出JADX大法師對(duì)微信6.6.7施法。結(jié)果同樣的位置變成了如下這個(gè)樣子:
6.6.7.png

看到區(qū)別了嗎?獲取從intent中獲取字符串的key從"Kdescription"變成了e$h.thz
那么這個(gè)e$h.thz是個(gè)什么鬼?它長(zhǎng)這樣:
什么鬼

它就是在原來"Kdescription"后面又拼接了個(gè)System.currentTimeMillis()。。。
至此真相大白了。原來是key變了導(dǎo)致我們發(fā)送的標(biāo)題在微信這邊取不到。如果有同學(xué)說我在構(gòu)造Intent的時(shí)候也用同樣的key不就可以了嗎?

...
intent.putExtra("Kdescription" + System.currentTimeMillis(), “多圖分享的標(biāo)題”);
...

。。。。。。我勸你再想想。
如果你有黑科技可以在分享之前從微信獲取到e$h.thz的值,請(qǐng)告訴我。

退一步的解決辦法是在分享圖片的同時(shí)把標(biāo)題復(fù)制到剪貼板里,這樣用戶在分享的頁面多操作一步粘貼一下就好了。

總結(jié)

這個(gè)“ Kdescription”應(yīng)該算是微信的一個(gè)未對(duì)外公開的接口協(xié)議。我們之前利用它來做圖文分享是利用了這個(gè)隱藏功能。新版本做的這個(gè)改動(dòng)導(dǎo)致其不可用,這也沒什么好辦法。教訓(xùn)就是當(dāng)我們想利用一些第三方的不公開功能的時(shí)候要慎重,以免將來掉坑里難受。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明AI閱讀 16,210評(píng)論 3 119
  • 昨天看了一些跳舞的視頻,真的是被帥到了。那種人長(zhǎng)得美,跳舞好的妹子真的是逆天了。舞蹈帶給人的那種愉悅感和力量感,很...
    雀島札記閱讀 239評(píng)論 0 0
  • 首先關(guān)注這件事情,始于事件標(biāo)題'臨沂'倆字,是的,我和事件的女主是同鄉(xiāng),如果沒錯(cuò)的話,她所上的高中是我10年前畢業(yè)...
    唐果果99閱讀 866評(píng)論 0 0
  • 拓跋珪的結(jié)發(fā)妻子是劉頭眷的女兒,兩人相識(shí)于患難之中,劉夫人為拓跋珪生了一個(gè)兒子和一個(gè)女兒,兒子因?yàn)槭情L(zhǎng)子,所以取名...
    寒七琪閱讀 863評(píng)論 5 2

友情鏈接更多精彩內(nèi)容