天天看點

mui、HBuilder、 HTML5+實作分享微信分享界面閃退的問題

實作微信分享的步驟有如下幾步:

1. 在微信開放平台申請AppID、AppSecret;

2. 配置Hbuilder項目中的manifest.json檔案,添加分享權限和配置分享SDK; 

3. 測試分享。

mui、HBuilder、 HTML5+實作分享微信分享界面閃退的問題

步驟是很簡單,但如果出現問題的話涉及到代碼的開發、AppID的申請、打包過程、以及微信調用等環節,問題很難在第一時間得到定位。

為了解決項目中存在的微信分享出現閃退的情況,我足足花了四天的時間才找到了出錯的地方。

微信分享出現錯誤的具體表現是:通過USB資料線連接配接Hbuilder和手機進行聯調測試,微信分享一調一個準,速度杠杆滴。打包釋出後,再進行分享,其他的環節都沒問題,但微信就是閃了一下以後就沒有反應了,這個速度也很快,快到還沒看清是不是微信的界面呢,就沒反應了。

從問題出現的時機上來判斷,應該是微信自身的問題,因為隻要點選了分享後,分享的代碼沒有問題的話,後續的環節就交給微信來執行了。

其他同僚也不懂這個問題,在這個問題上沒有幫上忙,反倒是亂下結論,混淆視聽,浪費了不少的時間。當然最後問題的解決,也是同僚最新懷疑出了問題的環節,我實際進行測試後才發現了錯誤。

原來問題就出現在微信分享AppID的申請上,申請AppID時填寫的應用簽名錯了,以至于分享的代碼不能夠正常地調出微信的分享界面,這也從側面驗證了我之前問題是出在微信那邊的思路。

在微信開放平台申請AppID時,需要填寫應用簽名一項。因為受到mui社群上一篇文章的誤導,我把應用簽名寫成了Google開發者證書中的SHA1簽名,但微信官方需要的并非是這個這個簽名。

mui、HBuilder、 HTML5+實作分享微信分享界面閃退的問題

微信在手機上調用分享界面時是需要這個申請AppID時填寫的應用簽名的,他們在稽核AppID申請後把這個簽名值儲存在資料庫裡。當第三方應用調取微信分享時,微信會比對這個AppID中隐含的應用簽名是否和實時從手機上擷取到的應用簽名比對,如果比對則進入微信分享,如果不比對就閃退。

是以這個應用簽名一定要寫對,如果沒有寫對,你就去哭吧,微信是不會提醒你錯誤出在哪裡的!!

那麼應用簽名如何擷取呢?有個叫GenSignature的App,隻要輸入應用的包名就可以擷取到該應用的應用簽名。我在百度雲上分享了這個App,複制這個連結和密碼就能下載下傳: https://pan.baidu.com/s/1qYib3eG 密碼: 7r1k  或者直接點選閱讀原文打開連結。

mui、HBuilder、 HTML5+實作分享微信分享界面閃退的問題

事後我對這件事情的分析是遇到問題我們應該不慌不忙,沉着應對。在這個過程中我們作為代碼的當事人,是最清楚事情原委的主導者,抱怨或者随波逐流,唯唯諾諾,接收别人所謂“熱心的幫助”隻會讓我們把精力浪費在不必要的地方,是以自己的事情還得自己做,自己挖的坑哭着也要填完。

通過HTML5+實作微信分享容易遇到的坑:

1. 沒有正确設定權限: 微信分享需要分享權限,需要正确配置分享SDK中的AppID和AppSecret,這些是最基本的也是最重要的内容。

2. AppID申請過程中填寫的内容一定和真實的内容有出入:在申請AppID時,應用簽名和包名一定要正确,這兩個如果填錯,是很難發現問題出現的環節,是以多檢查幾次也不為過。

3. 打包時包名寫錯:打包時需要填寫包名和Google開發者證書,能否正确調用微信分享,成敗在此一舉。

mui、HBuilder、 HTML5+實作分享微信分享界面閃退的問題

        4. 分享的内容為空:分享的内容有時也會影響到分享的結果,微信分享字段有三個:title,content和href,這三個字段最好都不要為null。

轉自:https://mp.weixin.qq.com/s/auewkBOo4cwBQI1Zz1hZ2Q?