先说一下背景:涉及到两个页面,登录页面和业务的“首页”。
登录页面称为Page Login,处理初始化数据;
业务的“首页”称为 Page Index,是真真正正的首页,有Tab bar在下面。
由于业务的需求,我们的小程序启动的时候需要加载各种东西,时间很长,所以干脆把这些用户登录的逻辑都放在Page Login,并且设置为app.json的pages的第一个成员,作为小程序认为的首页Home。
登录页面做了一个过渡的效果,onLoad的时候同时获取登录用户需要的信息。
如果已经成功登录,就会redirectTo业务的“首页”。
问题来了,这样做的话,redirectTo到Page Index的时候会无端端顶上有一个Home的按钮。
很无语,这个玩意是relaunch回去Page Login的样子。
这就算了,最多我在Page Login的onLoad做一个登录态检测就好了。
如果检测到已经登录,就重新redirectTo业务的“首页”。
尴尬的事情是,不能……
此时redirectTo回去会导致一个严重问题,回不去了……
安卓上小程序会报错,大概意思就是webview not found。
而且我现在又复现不出来这个错误,反而是直接卡住了没反应。
其实问题就两个。
一个是,这个莫名其妙的Home按钮能不能不要显示。因为不属于“分享,消息模板,扫描”中任意一种啊。
完美解决这个问题;
第二个是redirectTo的webview not found问题。
先谢谢微信的同学解答
说错了…… 用的是wx.switchTab跳转回去。
看到输出里面Page Index已经执行onReady里面的事件了。
渲染层不发生改变。
OnWebviewEvent: __DOMReady, WebviewId: 1127363488 not found
就酱
关键问题是回去之后Tab页面的onReady之类的事件都正常运行了
而且wx.switchTab已经检查过了,成功触发success事件,
但是Page Index的渲染层挂了,WebView not found,所以小程序的界面卡在前一个页面了。
如果没有那个导航栏顶部的Home按钮就不会有这么多幺蛾子……