通用說明
:對于一個新聞狮荔、閱讀胎撇、論壇介粘、購物等應(yīng)用殖氏,瀏覽頁面并不需要用戶進(jìn)行登錄和注冊;但是在編輯姻采、評論等頁面需要用戶先登錄雅采。故需要封裝一個全局的登錄檢查函數(shù),在對應(yīng)的頁面進(jìn)行調(diào)用。檢查判斷是否已登錄婚瓜,已登錄則可繼續(xù)操作宝鼓;未登錄則跳轉(zhuǎn)至登錄頁先完成登錄,然后再回到之前頁面巴刻。
1. 在 main.js 中封裝全局登錄函數(shù)
//封裝全局登錄檢查函數(shù):backpage為登錄后返回的頁面愚铡;backtype為打開頁面的類型[1 : redirectTo 2 : switchTab]
//3種頁面跳轉(zhuǎn)方式:NavigationTo(直接打開新頁面),RedirectTo(覆蓋原頁面后打開新頁面),SwitchTo(切換頂部導(dǎo)航的方式來切換頁面)
Vue.prototype.checkLogin = function(backpage, backtype){
var SUID = uni.getStorageSync('SUID');//本地持久化存儲
var SRAND = uni.getStorageSync('SRAND');
var SNAME = uni.getStorageSync('SNAME');
var SFACE = uni.getStorageSync('SFACE');
if(SUID == '' || SRAND == '' || SFACE == ''){
uni.redirectTo({url:'../login/login?backpage='+backpage+'&backtype='+backtype});
return false;
}
return [SUID, SRAND, SNAME, SFACE];//已經(jīng)登錄返回數(shù)組 [用戶 id, 用戶隨機(jī)碼, 用戶昵稱, 用戶表情],以供后續(xù)使用用戶信息
}
//定義全局api接口地址和token
var APITOKEN = 'api2019'
Vue.prototype.apiServer = 'http://localhost/index.php?token=' + APITOKEN + '&c=';
備注
:uni-app基于vue.js胡陪,vue對象是uni-app中一個關(guān)鍵的對象沥寥。main.js文件可定義全局函數(shù)和變量(如全局api接口地址),通過vue對象原型拓展來定義全局函數(shù)柠座,對應(yīng)頁面通過this指向來調(diào)用main.js文件定義的全局函數(shù)邑雅。
2. 創(chuàng)建 login 頁面
<template>
<view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
methods: {
},
onLoad:function(options){
console.log(options);
}
}
</script>
<style>
</style>
備注
:login 頁面作為登錄過度頁面,多端登錄都通過此頁面完成妈经。
3. 在對應(yīng)頁面中調(diào)用登錄檢查函數(shù)淮野,如 write.vue
<script>
export default {
data() {
return {
};
},
onLoad : function() {
var loginRes = this.checkLogin('../my/my', '2');
if(!loginRes){return false;}
}
}
</script>