欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

1.頁(yè)面結(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>申請(qǐng)獲取以下權(quán)限</view>
          <text>獲得你的公開(kāi)信息(昵稱,頭像、地區(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是用來(lái)記錄當(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傳遞到后臺(tái)置換用戶SessionKey、OpenId等信息
            uni.request({
              url: '服務(wù)器地址',
              data: {
                code: code,
              },
              method: 'GET',
              header: {
                'content-type': 'application/json'
              },
              success: (res) => {
                //openId、或SessionKdy存儲(chǔ)//隱藏loading
                uni.hideLoading();
              }
            });
          },
        });
      },
     //向后臺(tái)更新信息
      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)到小程序首頁(yè)
                url: '/pages/index/index'
              });
            }
          }
          
        });
      }
    },
    onLoad() {//默認(rèn)加載
      this.login();
    }
  }
</script>

4.最終效果如下:

 

wx_login.png圖:

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

相關(guān)文章

  • JavaScript樹(shù)結(jié)構(gòu)深度優(yōu)先算法

    JavaScript樹(shù)結(jié)構(gòu)深度優(yōu)先算法

    這篇文章主要介紹了JavaScript樹(shù)結(jié)構(gòu)深度優(yōu)先算法,樹(shù)結(jié)構(gòu)可以說(shuō)是前端中最常見(jiàn)的數(shù)據(jù)結(jié)構(gòu)之一,比如說(shuō)DOM樹(shù)、級(jí)聯(lián)選擇、樹(shù)形組件,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-07-07
  • 前端如何計(jì)算首屏及白屏?xí)r間代碼示例

    前端如何計(jì)算首屏及白屏?xí)r間代碼示例

    白屏?xí)r間是指用戶進(jìn)入該網(wǎng)站(比如刷新頁(yè)面、跳轉(zhuǎn)到新頁(yè)面等通過(guò)該方式)的時(shí)刻開(kāi)始計(jì)算,一直到頁(yè)面內(nèi)容顯示出來(lái)之前的時(shí)間節(jié)點(diǎn),這篇文章主要給大家介紹了關(guān)于前端如何計(jì)算首屏及白屏?xí)r間的相關(guān)資料,需要的朋友可以參考下
    2024-07-07
  • 如何在vscode中使用Typescript并運(yùn)行詳解

    如何在vscode中使用Typescript并運(yùn)行詳解

    在VSCode中編寫(xiě)的TypeScript代碼不能直接運(yùn)行,需要先用tsc編譯為JavaScript,然后才能運(yùn)行,下面這篇文章主要給大家介紹了關(guān)于如何在vscode中使用Typescript并運(yùn)行的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • JavaScript DOM節(jié)點(diǎn)操作方法總結(jié)

    JavaScript DOM節(jié)點(diǎn)操作方法總結(jié)

    下面小編就為大家?guī)?lái)一篇JavaScript DOM節(jié)點(diǎn)操作方法總結(jié)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-08-08
  • js中通過(guò)getElementsByName訪問(wèn)name集合對(duì)象的方法

    js中通過(guò)getElementsByName訪問(wèn)name集合對(duì)象的方法

    下面小編就為大家?guī)?lái)一篇js中通過(guò)getElementsByName訪問(wèn)name集合對(duì)象的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-10-10
  • phpwind放自動(dòng)注冊(cè)方法

    phpwind放自動(dòng)注冊(cè)方法

    phpwind放自動(dòng)注冊(cè)方法...
    2006-12-12
  • JS截取數(shù)組操作簡(jiǎn)單示例

    JS截取數(shù)組操作簡(jiǎn)單示例

    這篇文章主要給大家介紹了關(guān)于JS截取數(shù)組操作的相關(guān)資料,對(duì)數(shù)組的操作相信大家都不陌生,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • Openlayers實(shí)現(xiàn)根據(jù)半徑繪制圓形

    Openlayers實(shí)現(xiàn)根據(jù)半徑繪制圓形

    這篇文章主要介紹了利用Openlayers實(shí)現(xiàn)繪制三個(gè)圓形,繪制完成之后,三個(gè)圓心連接起來(lái),然后標(biāo)記出每?jī)蓚€(gè)圓心之間的距離,感興趣的可以了解一下
    2022-08-08
  • 獲取當(dāng)前按鈕或者h(yuǎn)tml的ID名稱實(shí)例(推薦)

    獲取當(dāng)前按鈕或者h(yuǎn)tml的ID名稱實(shí)例(推薦)

    下面小編就為大家?guī)?lái)一篇獲取當(dāng)前按鈕或者h(yuǎn)tml的ID名稱實(shí)例(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 追蹤discord.js中刪除消息的用戶方法實(shí)例詳解

    追蹤discord.js中刪除消息的用戶方法實(shí)例詳解

    這篇文章主要為大家介紹了如何追蹤discord.js中刪除消息的用戶方法實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01

最新評(píng)論