<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-27 21:53:27
        文檔

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

        微信小程序 調用微信授權窗口相關問題解決:引言 微信小程序為了優化用戶體驗,取消了在進入小程序時立馬出現授權窗口。需要用戶主動點擊按鈕,觸發授權窗口。 那么,在我實踐過程中,出現了以下問題。 1. 無法彈出授權窗口 2. 希望在用戶已經授權的情況下,不顯示按鈕 1. 具體實現 app.js
        推薦度:
        導讀微信小程序 調用微信授權窗口相關問題解決:引言 微信小程序為了優化用戶體驗,取消了在進入小程序時立馬出現授權窗口。需要用戶主動點擊按鈕,觸發授權窗口。 那么,在我實踐過程中,出現了以下問題。 1. 無法彈出授權窗口 2. 希望在用戶已經授權的情況下,不顯示按鈕 1. 具體實現 app.js

        引言

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

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

      1. 1. 無法彈出授權窗口
      2. 2. 希望在用戶已經授權的情況下,不顯示按鈕
      3. 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. 無法彈出授權窗口

        這里一定要注意

        授權窗口只會在用戶第一次授權時出現,也就是,只會出現一次!!

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

        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里有一段回調函數,這個函數就是用來解決異步的問題。

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        微信小程序 調用微信授權窗口相關問題解決:引言 微信小程序為了優化用戶體驗,取消了在進入小程序時立馬出現授權窗口。需要用戶主動點擊按鈕,觸發授權窗口。 那么,在我實踐過程中,出現了以下問題。 1. 無法彈出授權窗口 2. 希望在用戶已經授權的情況下,不顯示按鈕 1. 具體實現 app.js
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲精品无码久久久久sm| 国产精品免费视频一区| 亚洲精品无码久久千人斩| 本道天堂成在人线av无码免费| 国产自产拍精品视频免费看| 亚洲国产精品无码久久久秋霞1| 成年性生交大片免费看| 一本色道久久88—综合亚洲精品| 性盈盈影院免费视频观看在线一区| 亚洲欧美日本韩国| 全部免费a级毛片| 中文永久免费观看网站| 亚洲AV无码专区国产乱码电影| 一个人免费日韩不卡视频| 亚洲欧洲在线播放| 好吊妞998视频免费观看在线| 亚洲精品乱码久久久久久V| 亚洲av手机在线观看| 国产免费黄色无码视频| 夜夜亚洲天天久久| 91九色精品国产免费| 日韩亚洲国产综合高清| 亚洲第一福利网站在线观看| 本免费AV无码专区一区| 亚洲人成影院午夜网站| 免费国产人做人视频在线观看| CAOPORN国产精品免费视频| 久久精品蜜芽亚洲国产AV | 国产色爽免费无码视频| 久久久国产精品亚洲一区| 四虎免费在线观看| 91免费在线视频| 亚洲精品亚洲人成在线播放| 亚洲阿v天堂在线2017免费| 免费无码VA一区二区三区| 亚洲精品又粗又大又爽A片| 中文亚洲AV片在线观看不卡| 丁香花免费完整高清观看| 人人爽人人爽人人片av免费| 亚洲综合久久久久久中文字幕| 四虎AV永久在线精品免费观看|