九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
AngularJS進(jìn)階(十七)在AngularJS應(yīng)用中實(shí)現(xiàn)微信認(rèn)證授權(quán)遇到的坑


前言      

      項(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)部分的源代碼,如下所示:

[javascript] view plain copy
print?
  1. /*-------------- 微信授權(quán)登陸 --------------*/  
  2. // 擴(kuò)展 API 加載完畢后觸發(fā)“plusready"事件  
  3. document.addEventListener("plusready", function() {  
  4. // 擴(kuò)展API加載完畢,現(xiàn)在可以正常調(diào)用擴(kuò)展API  
  5. plus.oauth.getServices(function(services) {  
  6. // services.length可獲取當(dāng)前運(yùn)行環(huán)境支持授權(quán)登錄認(rèn)證服務(wù)數(shù)目  
  7. if (services.length > 0) {  
  8. auths = services;  
  9. } else {  
  10. alert("當(dāng)前運(yùn)行環(huán)境不支持授權(quán)登錄認(rèn)證服務(wù)!");  
  11. }  
  12. }, function(e) {  
  13. alert("獲取分享服務(wù)列表失?。? + e.message + " - " + e.code);  
  14. });  
  15. }, false);  
  16.    
  17. // 微信授權(quán)登錄操作  
  18. $scope.authLogin = function(){  
  19. for(var i = 0; i < auths.length; i++){  
  20. console.log(auths[i].description);  
  21. if(auths[i].description == "微信"){  
  22. var s = auths[i];  
  23. break;  
  24. }  
  25. }  
  26. if (!s.authResult) {  
  27. console.log("微信尚未授權(quán)");  
  28. s.login(  
  29. //登錄認(rèn)證成功  
  30. function(e){  
  31. console.log("微信登錄認(rèn)證成功!");  
  32. var objuser = s.userInfo;  
  33. var uname = objuser.nickname;  
  34. console.log(objuser.nickname);  
  35. localStorage.uid = uname;  
  36. localStorage.logined = "2";  
  37. $rootScope.userinfo = {  
  38. 'logined': "2",  
  39. 'username': uname  
  40. };  
  41. console.log(localStorage.logined);  
  42. $scope.set_defaultaddr();  
  43. //登錄后查詢訂單  
  44. $scope.getBillBadge();  
  45. if (sessionStorage) {  
  46.         console.log(sessionStorage.getItem("hisURL"));  
  47.         if(sessionStorage.getItem("hisURL")=='/tab/med_search')  
  48.         $rootScope.familyBox();  
  49.         $location.path(sessionStorage.getItem("hisURL"));  
  50.         }  
  51. },  
  52. //登錄認(rèn)證失敗  
  53. function(e){  
  54. alert( "登錄認(rèn)證失敗!" );  
  55. });  
  56. }else{  
  57. console.log("已經(jīng)登錄認(rèn)證!");  
  58. }  

      授權(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ù)講解。


微信開(kāi)放平臺(tái)和公眾平臺(tái)的區(qū)別?

      簡(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è)。


本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
HTML5本地存儲(chǔ)localStorage、sessionStorage基本用法、遍歷操作、異常處理等
HTML5存儲(chǔ)(帶一個(gè)粗糙的打怪小游戲案例)
HTMl5的sessionStorage和localStorage
localStorage使用總結(jié)
uni-APP 撥打電話uni.makePhoneCall 遇到的坑
創(chuàng)維/酷開(kāi)電視一周常見(jiàn)問(wèn)題解答——第三期(12.18--12.24)
更多類(lèi)似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服