最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解使用uni-app開發(fā)微信小程序之登錄模塊

 更新時間:2019年05月09日 11:50:38   作者:WFaceBoss  
這篇文章主要介紹了詳解使用uni-app開發(fā)微信小程序之登錄模塊,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

從微信小程序官方發(fā)布的公告中我們可獲知:小程序體驗版、開發(fā)版調(diào)用 wx.getUserInfo 接口,將無法彈出授權詢問框,默認調(diào)用失敗,需使用 <button open-type="getUserInfo"></button> 引導用戶主動進行授權操作:

1.當用戶未授權過,調(diào)用該接口將直接報錯

2.當用戶授權過,可以使用該接口獲取用戶信息

但在實際開發(fā)中我們可能需要彈出授權詢問框,因此需要我們自己來寫模擬授權彈框(主要是對<buttonopen-type="getUserInfo"></button>的包裹+用戶是否是第一次授權判斷來顯示該頁面),代碼如下:

1.頁面結構

<template>
  <view>
    <!-- #ifdef MP-WEIXIN -->
    <view v-if="isCanUse">
      <view>
        <view class='header'>
          <image src='../../static/img/wx_login.png'></image>
        </view>
        <view class='content'>
          <view>申請獲取以下權限</view>
          <text>獲得你的公開信息(昵稱,頭像、地區(qū)等)</text>
        </view>

        <button class='bottom' type='primary' open-type="getUserInfo" withCredentials="true" lang="zh_CN" @getuserinfo="wxGetUserInfo">
          授權登錄
        </button>
      </view>
    </view>
    <!-- #endif -->
  </view>
</template>

這里的isCanUse是用來記錄當前用戶是否是第一次授權使用的,wx_login.png圖在底部下載獲取即可。

2.樣式

<style>
  .header {
    margin: 90rpx 0 90rpx 50rpx;
    border-bottom: 1px solid #ccc;
    text-align: center;
    width: 650rpx;
    height: 300rpx;
    line-height: 450rpx;
  }

  .header image {
    width: 200rpx;
    height: 200rpx;
  }

  .content {
    margin-left: 50rpx;
    margin-bottom: 90rpx;
  }

  .content text {
    display: block;
    color: #9d9d9d;
    margin-top: 40rpx;
  }

  .bottom {
    border-radius: 80rpx;
    margin: 70rpx 50rpx;
    font-size: 35rpx;
  }
</style>

3.腳本部分

<script>
  export default {
    data() {
      return {
        SessionKey: '',
        OpenId: '',
        nickName: null,
        avatarUrl: null,
        isCanUse: uni.getStorageSync('isCanUse')||true//默認為true
      };
    },
    methods: {
      //第一授權獲取用戶信息===》按鈕觸發(fā)
      wxGetUserInfo() {
        let _this = this;
        uni.getUserInfo({
          provider: 'weixin',
          success: function(infoRes) {
            let nickName = infoRes.userInfo.nickName; //昵稱
            let avatarUrl = infoRes.userInfo.avatarUrl; //頭像
            try {
              uni.setStorageSync('isCanUse', false);//記錄是否第一次授權 false:表示不是第一次授權
              _this.updateUserInfo();
            } catch (e) {}
          },
          fail(res) {}
        });
      },

      //登錄
        login() {
        let _this = this;
        uni.showLoading({
          title: '登錄中...'
        });
       
        // 1.wx獲取登錄用戶code
        uni.login({
          provider: 'weixin',
          success: function(loginRes) {
            let code = loginRes.code;
            if (!_this.isCanUse) {
              //非第一次授權獲取用戶信息
              uni.getUserInfo({
                provider: 'weixin',
                success: function(infoRes) {
                       //獲取用戶信息后向調(diào)用信息更新方法
                  let nickName = infoRes.userInfo.nickName; //昵稱
                  let avatarUrl = infoRes.userInfo.avatarUrl; //頭像
                    _this.updateUserInfo();//調(diào)用更新信息方法
                }
              });
            }
      
            //2.將用戶登錄code傳遞到后臺置換用戶SessionKey、OpenId等信息
            uni.request({
              url: '服務器地址',
              data: {
                code: code,
              },
              method: 'GET',
              header: {
                'content-type': 'application/json'
              },
              success: (res) => {
                //openId、或SessionKdy存儲//隱藏loading
                uni.hideLoading();
              }
            });
          },
        });
      },
     //向后臺更新信息
      updateUserInfo() {
        let _this = this;
        uni.request({
          url:'url' ,//服務器端地址
          data: {
            appKey: this.$store.state.appKey,
            customerId: _this.customerId,
            nickName: _this.nickName,
            headUrl: _this.avatarUrl
          },
          method: 'POST',
          header: {
            'content-type': 'application/json'
          },
          success: (res) => {
            if (res.data.state == "success") {
              uni.reLaunch({//信息更新成功后跳轉到小程序首頁
                url: '/pages/index/index'
              });
            }
          }
          
        });
      }
    },
    onLoad() {//默認加載
      this.login();
    }
  }
</script>

4.最終效果如下:

 

wx_login.png圖:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • JavaScript使用cookie實現(xiàn)記住賬號密碼功能

    JavaScript使用cookie實現(xiàn)記住賬號密碼功能

    這篇文章主要介紹了JavaScript使用cookie實現(xiàn)記住賬號密碼功能,本文直接給出完整測試代碼,需要的朋友可以參考下
    2015-04-04
  • JS組件系列之Bootstrap table表格組件神器【終結篇】

    JS組件系列之Bootstrap table表格組件神器【終結篇】

    Bootstrap Table是輕量級的和功能豐富的以表格的形式顯示的數(shù)據(jù),支持單選,復選框,排序,分頁,顯示/隱藏列,固定標題滾動表,響應式設計,Ajax加載JSON數(shù)據(jù),點擊排序的列,卡片視圖等。本文給大家介紹JS組件系列之Bootstrap table表格組件神器【終結篇】,一起學習吧
    2016-05-05
  • bootstrap實現(xiàn)的自適應頁面簡單應用示例

    bootstrap實現(xiàn)的自適應頁面簡單應用示例

    這篇文章主要介紹了bootstrap實現(xiàn)的自適應頁面簡單應用,結合具體實例形式分析了基于bootstrap的列表布局結構頁面實現(xiàn)與使用技巧,需要的朋友可以參考下
    2017-03-03
  • HTML+CSS+JS實現(xiàn)抓娃娃機游戲

    HTML+CSS+JS實現(xiàn)抓娃娃機游戲

    這篇文章主要介紹了如何利用HTML+CSS+JS制作抓娃娃機游戲,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • WebGL 顏色與紋理使用介紹

    WebGL 顏色與紋理使用介紹

    這篇文章主要為大家介紹了WebGL 顏色與紋理使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • javascript 處理HTML元素必須避免使用的一種方法

    javascript 處理HTML元素必須避免使用的一種方法

    我們在編寫前臺頁面的時候,可能經(jīng)常會用到“javascript+數(shù)據(jù)”生成頁面元素的方法,但當我們要處理的數(shù)據(jù)量較大,導致頁面需要展現(xiàn)過多的控件的時候,頁面的響應速度也會直線下降
    2009-07-07
  • 純JavaScript實現(xiàn)猜數(shù)字游戲

    純JavaScript實現(xiàn)猜數(shù)字游戲

    這篇文章主要為大家詳細介紹了純JavaScript實現(xiàn)猜數(shù)字游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 動態(tài)改變div的z-index屬性的簡單實例

    動態(tài)改變div的z-index屬性的簡單實例

    這篇文章介紹了動態(tài)改變div的z-index屬性的簡單實例,有需要的朋友可以參考一下
    2013-08-08
  • 微信小程序實現(xiàn)長按拖拽排序功能

    微信小程序實現(xiàn)長按拖拽排序功能

    這篇文章主要為大家詳細介紹了微信小程序實現(xiàn)長按拖拽排序功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • JavaScript實現(xiàn)年歷效果

    JavaScript實現(xiàn)年歷效果

    這篇文章主要為大家詳細介紹了JavaScript實現(xiàn)年歷效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08

最新評論

广昌县| 股票| 额济纳旗| 博白县| 永胜县| 察雅县| 秦安县| 万州区| 镇平县| 康平县| 龙江县| 碌曲县| 松潘县| 长宁区| 泰顺县| 伊吾县| 东阿县| 顺平县| 涪陵区| 保定市| 海南省| 司法| 邵东县| 尚义县| 阳新县| 宝清县| 咸丰县| 泽库县| 涞水县| 沛县| 大姚县| 军事| 讷河市| 舒城县| 新丰县| 华亭县| 花莲市| 沽源县| 高阳县| 井陉县| 元氏县|