1. 程式人生 > 其它 >微信小程式按鈕鑑權

微信小程式按鈕鑑權

微信小程式按鈕鑑權判斷使用者是否登入或者是否實名

在微信小程式的開發中可能會遇到鑑權判斷是否登入、實名的需求,當用戶開啟微信小程式的時候,可以看到一些列表資訊,但是需要需要限制使用者先登入、實名才能進行點選按鈕操作。當用戶點選按鈕的時候就需要提示使用者去登入,當這種需求的按鈕比較少,只有一個頁面的時候,很好辦。直接在按鈕的方法裡面先去判斷是否登入或者實名。然後再繼續其他操作。顯然這種方式只能滿足簡單的場景。如果每個tabbar頁面的按鈕都需要那我們的程式碼將會變得無比臃腫。

那我們在微信小程式中如何實現才能更加方便呢?

app.js:

checkLoginAuth: function (event) {
    if (!this.globalData.isLogin) { // 判斷是否登入
      wx.showModal({
        title: '提示',
        content: '你還沒有登入哦!是否去登入?',
        success(res) {
          if (res.confirm) {
            wx.reLaunch({
              url: '/pages/login/login',
            })
          }
        }
      })
      return false
    }

    if (!this.globalData.isAuth) { // 判斷是否實名
      wx.showModal({
        title: '提示',
        content: '您尚未進行實名認證,請先進行實名認證',
        success(res) {
          if (res.confirm) {
            wx.reLaunch({
              url: '/pages/auth/person/index',
            })
          }
        }
      })
      return false
    }

    var resultArr = getCurrentPages(); // getCurrentPages() 函式獲取當前頁面棧
    var currentTarget = resultArr[resultArr.length - 1]; // 獲取到最後一個(當前頁面)
    var fn = event.currentTarget.dataset.event; // 獲取wxml中定義的data-event(鑑權之後需要呼叫的方法名)
    currentTarget[fn](event); // 最後在當前頁面棧中呼叫data-event中的方法,並將wxml中繫結的引數傳遞下去
  }

wxml:

 <view class="list_item_status list_sign" 
    catchtap="checkLoginAuth"  
    data-event="toSign" 
    data-opened="{{item.opened}}"  
    data-code="{{item.code}}">按鈕
 </view> 

當前頁面js:

const app = getApp()

Page({
	checkLoginAuth: app.checkLoginAuth,
  data:{},
  toSign(e) {  
 		// 其他操作
		wx.navigateTo({
			url: '頁面跳轉路徑',
		})
	},
})

通過這種方式就可以在微信小程式中實現按鈕鑑權。