一:初始化显示指定界面一般对于后台功能比如商家、管理员等,需要先登录才能进入到app,所以需要在打开的时候来判断用户是否登录,从而决定是进入app还是登录界面。那么在小程序中,我 ...
一:初始化显示指定界面
一般对于后台功能比如商家、管理员等,需要先登录才能进入到app,所以需要在打开的时候来判断用户是否登录,从而决定是进入app还是登录界面。
那么在小程序中,我们怎么来进行登录的判断呢?
大家都知道,在小程序中,我们注册页面是通过 app.json 这个文件 的pages字段。
{
"pages":[
"page/login/index",
"page/index/index",
]
}
注册之后,打开小程序会自动显示注册在最前面的页面,这里也就是 page/login/index
你会发现就算你登录之后,也还是会进入到登录界面,但是我们需要在用户登录之后跳转到page/index/index,所以这里我们需要加逻辑判断来切换跳转
由于注册入口是app.json而非js文件,所以这里不能加条件判断,看来不能从这里下手
对于单入口程序来说,一般都是在入口文件进行判断,看文档我们会发现小程序的入口文是app.js,并有对应的生命周期
我们或许可以在onLaunch,做处理
App({
onLaunch:function(){
let user =UserModel.getUserSync();
if(user){
wx.redirectTo({url:'page/index/index'});
return
}
}
});
上面逻辑就是如果用户登录,跳转到首页,如果首页是tabbar中的,请使用wx.switchTab方法,看上去很完美。
运行测试一下
WAService.js:3 jsEnginScriptError
Cannot read property'webviewId' of undefined
TypeError:Cannot read property'webviewId' of undefined
at x (http://700744025.appservice.open.weixin.qq.com/WAService.js:5:26872)
at .<anonymous>(http://700744025.appservice.open.weixin.qq.com/WAService.js:5:28821)
at http://700744025.appservice.open.weixin.qq.com/WAService.js:6:688
at http://700744025.appservice.open.weixin.qq.com/WAService.js:4:2530
at Array.forEach (native)
at .<anonymous>(http://700744025.appservice.open.weixin.qq.com/WAService.js:4:2510)
at http://700744025.appservice.open.weixin.qq.com/WAService.js:4:11420
at n.<anonymous>(http://700744025.appservice.open.weixin.qq.com/asdebug.js:1:11421)
at n.emit (http://700744025.appservice.open.weixin.qq.com/asdebug.js:1:7932)
at r (http://700744025.appservice.open.weixin.qq.com/asdebug.js:1:1470)
我们可以在调试用看到如上报错,找了一下微信的文档