国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 課堂 > 小程序 > 正文

微信小程序 授權(quán)登錄詳解(附完整源碼)

2020-03-21 15:15:27
字體:
供稿:網(wǎng)友

一、前言

由于微信官方修改了 getUserInfo 接口,所以現(xiàn)在無法實(shí)現(xiàn)一進(jìn)入微信小程序就彈出授權(quán)窗口,只能通過 button 去觸發(fā)。

官方連接:https://developers.weixin.qq.com/community/develop/doc/0000a26e1aca6012e896a517556c01

二、實(shí)現(xiàn)思路

自己寫一個(gè)微信授權(quán)登錄頁面讓用戶實(shí)現(xiàn)點(diǎn)擊的功能,也就是實(shí)現(xiàn)了通過 button 組件去觸發(fā) getUserInof 接口。在用戶進(jìn)入微信小程序的時(shí)候,判斷用戶是否授權(quán)了,如果沒有授權(quán)的話就顯示授權(quán)頁面,讓用戶去執(zhí)行授權(quán)的操作。如果已經(jīng)授權(quán)了,則直接跳過這個(gè)頁面,進(jìn)入首頁。

三、界面簡介

1.不帶 tabBar

微信小程序,授權(quán)登錄,源碼

2.帶 tabBar

微信小程序,授權(quán)登錄,源碼

四、源碼

1.index.wxml

<view wx:if="{{isHide}}">  <view wx:if="{{canIUse}}" >    <view class='header'>      <image src='/images/wx_login.png'></image>    </view>     <view class='content'>      <view>申請獲取以下權(quán)限</view>      <text>獲得你的公開信息(昵稱,頭像等)</text>    </view>     <button class='bottom' type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">      授權(quán)登錄    </button>  </view>  <view wx:else>請升級微信版本</view></view> <view wx:else>  <view>我的首頁內(nèi)容</view></view>

2.index.wcss

.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;}

3.index.js

Page({  data: {    //判斷小程序的API,回調(diào),參數(shù),組件等是否在當(dāng)前版本可用。    canIUse: wx.canIUse('button.open-type.getUserInfo'),    isHide: false  },   onLoad: function() {    var that = this;    // 查看是否授權(quán)    wx.getSetting({      success: function(res) {        if (res.authSetting['scope.userInfo']) {          wx.getUserInfo({            success: function(res) {              // 用戶已經(jīng)授權(quán)過,不需要顯示授權(quán)頁面,所以不需要改變 isHide 的值              // 根據(jù)自己的需求有其他操作再補(bǔ)充              // 我這里實(shí)現(xiàn)的是在用戶授權(quán)成功后,調(diào)用微信的 wx.login 接口,從而獲取code              wx.login({                success: res => {                  // 獲取到用戶的 code 之后:res.code                  console.log("用戶的code:" + res.code);                  // 可以傳給后臺,再經(jīng)過解析獲取用戶的 openid                  // 或者可以直接使用微信的提供的接口直接獲取 openid ,方法如下:                  // wx.request({                  //   // 自行補(bǔ)上自己的 APPID 和 SECRET                  //   url: 'https://api.weixin.qq.com/sns/jscode2session?appid=自己的APPID&secret=自己的SECRET&js_code=' + res.code + '&grant_type=authorization_code',                  //   success: res => {                  //     // 獲取到用戶的 openid                  //     console.log("用戶的openid:" + res.data.openid);                  //   }                  // });                }              });            }          });        } else {          // 用戶沒有授權(quán)          // 改變 isHide 的值,顯示授權(quán)頁面          that.setData({            isHide: true          });        }      }    });  },   bindGetUserInfo: function(e) {    if (e.detail.userInfo) {      //用戶按了允許授權(quán)按鈕      var that = this;      // 獲取到用戶的信息了,打印到控制臺上看下      console.log("用戶的信息如下:");      console.log(e.detail.userInfo);      //授權(quán)成功后,通過改變 isHide 的值,讓實(shí)現(xiàn)頁面顯示出來,把授權(quán)頁面隱藏起來      that.setData({        isHide: false      });    } else {      //用戶按了拒絕按鈕      wx.showModal({        title: '警告',        content: '您點(diǎn)擊了拒絕授權(quán),將無法進(jìn)入小程序,請授權(quán)之后再進(jìn)入!!!',        showCancel: false,        confirmText: '返回授權(quán)',        success: function(res) {          // 用戶沒有授權(quán)成功,不需要改變 isHide 的值          if (res.confirm) {            console.log('用戶點(diǎn)擊了“返回授權(quán)”');          }        }      });    }  }})

關(guān)于 TabBar 的處理,只需要把上面寫好的頁面設(shè)置到 app.json 里面即可。

4.github 下載

https://github.com/yyzheng1729/loginDemo

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


注:相關(guān)教程知識閱讀請移步到微信小程序開發(fā)頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 漳浦县| 紫云| 陵川县| 红安县| 望城县| 宁波市| 玉门市| 临高县| 五莲县| 成武县| 浠水县| 揭阳市| 常宁市| 罗源县| 白河县| 故城县| 章丘市| 宿州市| 宜兴市| 浦江县| 南京市| 滦平县| 淳安县| 揭西县| 滨州市| 绍兴县| 广东省| 乌兰县| 绍兴市| 容城县| 龙州县| 冷水江市| 唐山市| 于都县| 即墨市| 儋州市| 武强县| 崇阳县| 大英县| 襄城县| 宝兴县|