亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > JavaScript > 正文

微信小程序 調用微信授權窗口相關問題解決

2019-11-19 11:08:30
字體:
來源:轉載
供稿:網友

引言

微信小程序為了優化用戶體驗,取消了在進入小程序時立馬出現授權窗口。需要用戶主動點擊按鈕,觸發授權窗口。

那么,在我實踐過程中,出現了以下問題。

  • 1. 無法彈出授權窗口
  • 2. 希望在用戶已經授權的情況下,不顯示按鈕

1. 具體實現

app.js的onLaunch()函數中,添加獲取用戶個人信息的代碼段。實現在用戶已經授權的情況(例如第二次打開小程序時)下,自動獲取用戶個人信息,而不需要用戶的授權。

// 獲取用戶信息wx.getSetting({  success: res => {    if (res.authSetting['scope.userInfo']) {      console.log("app: " + "用戶已經授權")      // 已經授權,可以直接調用 getUserInfo 獲取頭像昵稱,不會彈框      wx.getUserInfo({        success: res => {          // 可以將 res 發送給后臺解碼出 unionId          this.globalData.userInfo = res.userInfo          console.log(this.globalData.userInfo)          this.globalData.hasUserInfo = true          // 由于 getUserInfo 是網絡請求,可能會在 Page.onLoad 之后才返回          // 所以此處加入 callback 以防止這種情況          if (this.userInfoReadyCallback) {            this.userInfoReadyCallback(res)          }        },        fail: (res) => {          console.log("app: " + "獲取用戶信息失敗")        }      })    }else {      console.log("app: " + "用戶暫時未授權")    }  }})

me.wxml中添加授權按鈕(具體的頁面根據大家的實際情況)。這里的button組件必須按照如下的形式。

<button open-type="getUserInfo" bindgetuserinfo="你自己定義函數"></button>
<block wx:if="{{!hasUserInfo}}">  <image src='../../images/icon/wechat.png'></image>  <button open-type="getUserInfo" bindgetuserinfo="getUserInfo">微信授權登錄</button></block>

效果這樣,具體的樣式根據大家的喜好更改

me.js中添加如下變量和方法,在用戶之前沒有授權的情況下,需要用戶主動點擊按鈕。

data: {  userInfo: null,  hasUserInfo: false},getUserInfo: function(e) {  console.log("me: " + "用戶點擊授權")  if(e.detail.userInfo){    this.setData({      userInfo: e.detail.userInfo,      hasUserInfo: true    })    app.data.userInfo = this.userInfo    app.data.hasUserInfo = true  }}

2. 無法彈出授權窗口

這里一定要注意

授權窗口只會在用戶第一次授權時出現,也就是,只會出現一次?。?/p>

在微信小程序開發工具里,需要我們清除所有緩存

3. 已經授權的情況下,不顯示按鈕

由于用戶已經授權的時候,app.js會獲取用戶個人信息(而不是在用戶點擊授權按鈕時獲?。?,但是這個過程是異步的。

可以看到我們的授權按鈕的出現時根據{{!hasUserInfo}}的真值來判斷,這個值可以通過app.js是否獲取了信息來賦值。

<block wx:if="{{!hasUserInfo}}">  <image class="userAvatar" src='../../images/icon/wechat.png'></image>  <button open-type="getUserInfo" bindgetuserinfo="getUserInfo">微信授權登錄</button></block>

但是,可能出現用戶已經授權了,但是app.js獲取個人信息時過慢,然而我們的授權按鈕卻錯誤的以為app.js沒有獲取到信息,所以將授權按鈕渲染了出來。

這時,我們希望,在app.js判斷用戶已經授權且獲取到信息后,告訴我們的授權按鈕。

我們在me.js中添加如下代碼段。

onLoad: function() {  // 獲取個人信息  if(app.globalData.userInfo){    this.setData({      userInfo: app.globalData.userInfo,      hasUserInfo: true    })  }else{    // 在app.js沒有獲取到信息時,判斷app.js的異步操作是否返回信息    app.userInfoReadyCallback = res => {      this.setData({        userInfo: app.globalData.userInfo,        hasUserInfo: true      })    }  }}

為什么這里會有個app.userInfoReadyCallback函數呢,我們注意到在app.js的wx.getSetting里有一段回調函數,這個函數就是用來解決異步的問題。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久视频免费观看| 亚洲精品国产美女| 欧美黄色成人网| 少妇激情综合网| 永久555www成人免费| 亚洲男人天堂2023| 欧美成人国产va精品日本一级| 国产精品国产三级国产aⅴ浪潮| 欧美精品videosex牲欧美| 青青草国产精品一区二区| 国产免费一区二区三区在线观看| 亚洲淫片在线视频| 日韩av高清不卡| 欧美激情一区二区久久久| 国产精品444| 青青草国产精品一区二区| 2019中文字幕在线观看| 久久久久久国产免费| 51久久精品夜色国产麻豆| 最近2019年日本中文免费字幕| 亚洲国产高潮在线观看| 性色av一区二区三区红粉影视| 17婷婷久久www| 黄色成人av在线| 久久精品久久久久| 国产精品十八以下禁看| 国产99久久久欧美黑人| 亚洲男人7777| 欧美性资源免费| 九色成人免费视频| 久久久久久亚洲精品不卡| 麻豆国产va免费精品高清在线| 动漫精品一区二区| 国产精品欧美风情| 国产精品日韩久久久久| 国产午夜精品免费一区二区三区| 欧美性xxxx极品高清hd直播| 国产噜噜噜噜久久久久久久久| 久久久精品2019中文字幕神马| 日韩免费在线观看视频| 狠狠爱在线视频一区| 亚洲成人黄色网| 国产女人精品视频| 国产精品自产拍在线观看| 成人免费自拍视频| 久久这里有精品| 免费99精品国产自在在线| 国产日产欧美精品| 久久久久中文字幕| 中文字幕久久久| 亚洲国产精品悠悠久久琪琪| 国产欧美日韩专区发布| 久久人人爽人人爽爽久久| 国产va免费精品高清在线观看| 国产精品91久久久久久| 97精品在线视频| 精品免费在线视频| 欧美制服第一页| 亚洲成人久久一区| 成人av资源在线播放| 久热精品视频在线观看一区| 91av在线看| 色悠悠久久久久| 久久这里只有精品99| 国产精品小说在线| 成人国产亚洲精品a区天堂华泰| 国产成人久久久精品一区| 91美女片黄在线观| 97精品国产91久久久久久| 亚洲日本欧美中文幕| 国产精品第一第二| 欧美日韩福利视频| 欧美日韩国产丝袜美女| 97热精品视频官网| 伊人av综合网| 在线不卡国产精品| 免费91麻豆精品国产自产在线观看| 国产精品久久久久久亚洲调教| 91大神在线播放精品| 日韩视频第一页| 亚洲欧洲一区二区三区久久| 国产乱人伦真实精品视频| 日韩av在线看| 欧美精品videos性欧美| 亚洲国产欧美自拍| 国内精品国产三级国产在线专| 亚洲最大av网| 国产精品免费观看在线| 国产亚洲视频在线观看| 亚洲精品999| 69久久夜色精品国产69| 国产成人精品免高潮在线观看| 97在线精品视频| 国产伦精品一区二区三区精品视频| 欧美激情18p| 九九热r在线视频精品| 国产精品久久久精品| 欧美在线一级va免费观看| 亚洲香蕉成视频在线观看| 日韩视频精品在线| 国产中文日韩欧美| 欧美激情三级免费| 欧美老妇交乱视频| 丁香五六月婷婷久久激情| 欧美日韩一区二区免费在线观看| 国产欧美精品一区二区三区-老狼| 中文字幕日韩av| 日韩精品免费在线观看| 韩国19禁主播vip福利视频| 69视频在线免费观看| 一本色道久久88综合日韩精品| 亚洲国产精品女人久久久| 欧美激情一区二区久久久| 亚洲成人黄色在线| 欧美精品在线免费观看| 亚洲国产精品久久| 国产精品美女网站| 亚洲电影免费观看高清完整版| 日本国产欧美一区二区三区| 97av在线视频免费播放| 国产精品视频中文字幕91| 国产盗摄xxxx视频xxx69| 国产在线日韩在线| 亚洲欧美国产视频| 欧美限制级电影在线观看| 久青草国产97香蕉在线视频| 久久av.com| 久久久久一本一区二区青青蜜月| 国产精品第三页| 97婷婷大伊香蕉精品视频| 亚洲成人久久网| 日韩av手机在线| 日韩精品日韩在线观看| 日韩高清电影免费观看完整版| 国产精品h片在线播放| 国产这里只有精品| 国产成人精品久久二区二区91| 国产美女久久精品香蕉69| 国产91在线播放九色快色| 国产成人精彩在线视频九色| 日本久久久久久久久久久| 日日狠狠久久偷偷四色综合免费| 国产亚洲精品久久久久久牛牛| 国产精品毛片a∨一区二区三区|国| 正在播放欧美视频| 92看片淫黄大片看国产片| 亚洲国产精品yw在线观看| 久99九色视频在线观看| 久久精品电影一区二区| 国产精品欧美激情在线播放| 亚洲成人亚洲激情| 国产成人久久精品| 最近2019中文字幕第三页视频| 日韩视频在线免费观看| 性欧美长视频免费观看不卡| 视频一区视频二区国产精品| 黄网站色欧美视频| 欧美性猛交xxxx乱大交3| 久久久久北条麻妃免费看| 一本色道久久综合狠狠躁篇的优点| 国产精品亚洲欧美导航| 中文字幕在线日韩| 欧美体内谢she精2性欧美| 欧美激情一区二区三区成人|