微信小程式按鈕鑑權
阿新 • • 發佈:2022-03-28
微信小程式按鈕鑑權判斷使用者是否登入或者是否實名
在微信小程式的開發中可能會遇到鑑權判斷是否登入、實名的需求,當用戶開啟微信小程式的時候,可以看到一些列表資訊,但是需要需要限制使用者先登入、實名才能進行點選按鈕操作。當用戶點選按鈕的時候就需要提示使用者去登入,當這種需求的按鈕比較少,只有一個頁面的時候,很好辦。直接在按鈕的方法裡面先去判斷是否登入或者實名。然後再繼續其他操作。顯然這種方式只能滿足簡單的場景。如果每個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: '頁面跳轉路徑', }) }, })
通過這種方式就可以在微信小程式中實現按鈕鑑權。