1. 程式人生 > >mui、HBuilder、 HTML5+實現分享微信分享介面閃退的問題

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

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

 

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

 

2. 配置Hbuilder專案中的manifest.json檔案,新增分享許可權和配置分享SDK; 

 

3. 測試分享。

 

 

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

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

 

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

 

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

 

 

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

 

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

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

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

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

 

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

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