**问题已解决:tabbar不要直接写在入口页面中,创建个新页面写tabbar,在首页用subpages调用。
最终解决方案:
上面的方法启动时相当卡,且容易白屏。经过分析,确定官方的demo中存在一样的问题,并找到原因,下面是解决方法。
官方的案例中,使用了一个数组来存储预加载的子页面的路径,并使用了一个for循环,逐个进行预加载,判断i>0的页面,逐个隐藏掉。这个循环是这样的:
{{{
for(var i=0;i<4;i++){
var sub = plus.webview.create(subpages[i],subpages[i],subpage_style);
if(i>0){
sub.hide();
}
self.append(sub);
}
}}}
改成
{{{
for(var i=0;i<4;i++){
var sub = plus.webview.create(subpages[i],subpages[i],subpage_style);
self.append(sub);
if(i>0){
sub.hide();
}
}
}}}
就是调整了下self.append()的位置。
我自己的理解是,原demo的写法是先隐藏掉页面,再把页面append到主webview之上,顺序从逻辑上看就有问题。效果是页面虽然看不到了,但实际上从显示层级上而言还是『悬浮』在主页面之上的。 所以如果在index.html中直接使用webview模式调用标签页,在标签页中打开新页面,新页面的顺序是跟index.html在同一层级上的(或介于两者之间),所以被遮盖。而demo中,tab-webview-main.html本身就是二级页面,新打开的页面跟tab-webview-main.html是同一个层级上的,所以不存在此问题。
不管分析的对不对,总之调整下append()和hide()的顺序,问题就能解决了!
这个问题困扰我两天了,百思不得其解。
模仿官方的例子使用webview模式选项卡,第二选项卡预加载list.html页面,通过ajax获得数据,拼装成列表,效果如图1,到这一步是完全正常的,然后在选项卡内直接用mui.openwindow()切换页面时,新打开的文章页打开后被显示在了list.html下面,注意图二底部。 而此时list.html还是不可点击的,很困惑究竟是谁覆盖了谁,以及怎么解决这个问题。
在首页设置一个按钮打开list.html,之后的切换没有这个问题的。后面的三个选项卡都是同样的情况。
Curtis (作者)
是在list.html中打开新页面。
此外还有,在主页中加一个按钮打开list.html,之后的跳转都是一切正常的,后面的三个页面都都是一样的问题。
不知道该如何分析,我改成直接用plus.Webview.creat新建页面,然后用alert(WebviewStyle.zindex )或console.log(WebviewStyle.zindex),默认情况下都显示是undfined。
2014-11-01 12:02