1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
| <template>
| <view id="app">
| <slot></slot>
| </view>
| </template>
| <script>
| export default {
| onLaunch: function() {
| // 应用启动时执行登录校验
| this.checkLogininStaus();
|
| console.log('App Launch')
| // 预加载主要页面,减少切换闪烁
| this.preloadPages();
| },
| onShow: function() {
| console.log('App Show')
| },
| onHide: function() {
| console.log('App Hide')
| },
| methods:{
| checkLogininStaus(){
| console.log("打开时判断登录状态")
| // Todo 需要将这个判断加到每次请求之前判断是否登录.
|
| // 获取本地存储的登录状态
| const token = uni.getStorageSync('token');
| console.log('当前登录token',token);
| if(!token){
| //跳转首页
| uni.reLaunch({
| url: '/subpackage/login/login', // 你的登录页完整路径
| fail: (err) => {
| console.error('跳登录页失败', err);
| }
| });
| return;
| }
| // 后端过滤器自动在调用方法时验证并刷新了token
| this.refreshToken();
|
| },
| refreshToken() {
| // 调用后端接口刷新 token,更新本地存储
|
| },
| preloadPages() {
| // APP平台生效,其它平台调用无影响
| const pages = [
| '/pages/index/index',
| '/subpackage/manager/progress',
| '/subpackage/user/mine',
| '/subpackage/user/my-projects'
| ];
| pages.forEach(url => {
| try { uni.preloadPage({ url }); } catch(e) {}
| });
| }
| }
| }
| </script>
|
| <style>
| page {
| margin: 0;
| padding: 0;
| }
| </style>
|
|