項(xiàng)目開(kāi)發(fā)過(guò)程中,移動(dòng)端新近增加了一個(gè)功能“微信授權(quán)登錄”,由于自己不是負(fù)責(zé)移動(dòng)端開(kāi)發(fā)的,但最后他人負(fù)責(zé)的部分未達(dá)到預(yù)期效果。不能準(zhǔn)確實(shí)現(xiàn)微信授權(quán)登錄。最后還得靠自己做進(jìn)一步的優(yōu)化工作,誰(shuí)讓自己是負(fù)責(zé)人呢?原來(lái)負(fù)責(zé)人就是負(fù)責(zé)最后把所有的BUG解決掉。
首先,熟悉一下微信授權(quán)部分的源代碼,如下所示:
授權(quán)認(rèn)證步驟:獲取授權(quán)登錄認(rèn)證服務(wù)——>授權(quán)登錄認(rèn)證服務(wù)
手機(jī)之間在運(yùn)行同一款軟件時(shí)由于系統(tǒng)差異也是存在表現(xiàn)差異。如下圖所示,上圖為紅米Android4.4.4版本上的測(cè)試結(jié)果,下圖為魅族5.0.1版本上的測(cè)試結(jié)果。很明顯下圖手機(jī)不能實(shí)現(xiàn)定位功能。
更明顯的差異存在于授權(quán)部分,調(diào)用授權(quán)服務(wù)時(shí)返回的數(shù)組內(nèi)容不同,從下圖可明顯看出微信與QQ在返回?cái)?shù)組中的位置不同。
參考文獻(xiàn):http://www.html5plus.org/doc/zh_cn/oauth.html
http://ask.dcloud.net.cn/article/192
平臺(tái)支持:
Android - 2.2+ (不支持)
iOS - 5.0+ (不支持)
注:Js中判斷兩字符串是否相等,使用“==”判斷。不能使用equals。
又出現(xiàn)了問(wèn)題,在手機(jī)上調(diào)試一切正常,等到打包成APK就出現(xiàn)不能授權(quán)(提示登錄認(rèn)證失敗)的問(wèn)題。
alert( "登錄認(rèn)證失??!" + e.message+" - "+e.code);如下圖所示:
還是直接在手機(jī)測(cè)試,出現(xiàn)下面的現(xiàn)象:
感覺(jué)處于一種死循環(huán)的狀態(tài),但自己也一時(shí)找不到可以修改的地方。
微信登錄配置的參數(shù)必須要提交在線打包才能生效(真機(jī)調(diào)試的時(shí)候使用的是HBuilder基座的參數(shù))
折騰了一天,微信授權(quán)登錄還是未能完成。,頭痛....
好吧,我輸了。
繼續(xù)昨天未完的問(wèn)題。嘗試根據(jù)返回的錯(cuò)誤信息進(jìn)行修正。
通過(guò)查閱資料終于發(fā)現(xiàn)問(wèn)題所在了。授權(quán)中配置的參數(shù)必須來(lái)自微信開(kāi)放平臺(tái)申請(qǐng)所得,而非公眾平臺(tái)。那么二者之間又存在什么樣的區(qū)別呢?接下來(lái)繼續(xù)講解。
簡(jiǎn)單來(lái)講,微信公眾平臺(tái)是我們常見(jiàn)的公眾號(hào),包括訂閱號(hào)、服務(wù)號(hào)和企業(yè)號(hào),主要用于不具備太強(qiáng)技術(shù)開(kāi)放能力,擁有一定運(yùn)營(yíng)能力的品牌、商戶、媒體以及個(gè)人,作為一個(gè)自媒體平臺(tái)或者服務(wù)窗口來(lái)用,是面向更廣大的人群使用的。
微信開(kāi)放平臺(tái)是一個(gè)開(kāi)發(fā)者平臺(tái),針對(duì)的是有較強(qiáng)技術(shù)開(kāi)發(fā)能力、能夠研發(fā)同微信對(duì)接的應(yīng)用開(kāi)發(fā)者來(lái)使用的,面向的是技術(shù)公司和開(kāi)發(fā)者,不是面向所有人都可以使用的。
因此對(duì)于分不清二者區(qū)別的人來(lái)講,用公眾平臺(tái)就對(duì)了,能用得上開(kāi)放平臺(tái)的人肯定都是對(duì)開(kāi)放平臺(tái)功能有一定了解的人群。
那么,微信開(kāi)放平臺(tái)與公眾平臺(tái)注冊(cè)所得信息通用嗎?
答案是NO!因?yàn)樽?cè)時(shí)就不允許使用同一郵箱注冊(cè)。
聯(lián)系客服