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

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

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

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

1.當(dāng)用戶未授權(quán)過,調(diào)用該接口將直接報錯

2.當(dāng)用戶授權(quán)過,可以使用該接口獲取用戶信息

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

1.頁面結(jié)構(gòu)

<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>申請獲取以下權(quán)限</view>
          <text>獲得你的公開信息(昵稱,頭像、地區(qū)等)</text>
        </view>

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

這里的isCanUse是用來記錄當(dāng)前用戶是否是第一次授權(quán)使用的,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//默認(rèn)為true
      };
    },
    methods: {
      //第一授權(quán)獲取用戶信息===》按鈕觸發(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);//記錄是否第一次授權(quán) false:表示不是第一次授權(quán)
              _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) {
              //非第一次授權(quán)獲取用戶信息
              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: '服務(wù)器地址',
              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' ,//服務(wù)器端地址
          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({//信息更新成功后跳轉(zhuǎn)到小程序首頁
                url: '/pages/index/index'
              });
            }
          }
          
        });
      }
    },
    onLoad() {//默認(rèn)加載
      this.login();
    }
  }
</script>

4.最終效果如下:

 

wx_login.png圖:

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

    WebGL 顏色與紋理使用介紹

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

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

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

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

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

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

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

    微信小程序?qū)崿F(xiàn)長按拖拽排序功能

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

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

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

最新評論

贵溪市| 科尔| 六枝特区| 凤凰县| 赣州市| 康定县| 安宁市| 鹤庆县| 柏乡县| 合山市| 甘孜| 水城县| 简阳市| 江华| 两当县| 洛浦县| 六枝特区| 甘孜| 炉霍县| 临朐县| 朝阳区| 兴海县| 凤庆县| 那坡县| 兴山县| 五原县| 龙州县| 房产| 黔西县| 天门市| 巍山| 汝州市| 凌源市| 浏阳市| 元江| 分宜县| 保山市| 宁都县| 大关县| 黄浦区| 射洪县|