研究了好久的首页启动白屏卡顿现象,虽然只有那么短短的几毫秒,但是看着总是不舒服,尝试了官方推荐的nativeTab_demo。
但是不想用那个小凸点的半圆球,改了好久都没有解决问题,无奈还是选用了这个,然后就在官方的代码上继续修改,终于找到突破口,略微修改了一下代码,实现了启动的时候 加载首页可以像nativeTab_demo那么迅速显示,不卡顿,而且可以少加载一个页面,直接加载的首页可以显示,不用再定义main页面。
所以也想分享给各位在坑中挣扎的兄弟们。这个是我准备给公司开发的APP用的,就直接分享基础版的东西给你们吧。代码写的不好,大神勿喷。
demo在下面,自己下载吧!
mui.init();
/**此处是有四个菜单,首页不需要在这里创建,默认访问的首页会自动创建出来,所以tuan.html算第二个菜单开始**/
var subPages = ['tuan.html','small.html','person.html'];
mui.plusReady(function(){
//创建主体和子页面
var sub0 = plus.webview.getWebviewById(subPages[0]);
var sub1 = plus.webview.getWebviewById(subPages[1]);
var sub2 = plus.webview.getWebviewById(subPages[2]);
/**此处保证页面只有第一次运行的时候去创建那几个子页面**/
if(!sub0 || !sub1 || !sub2){
var self = plus.webview.currentWebview();
for(var i=0;i<3;i++){
var sub = plus.webview.create(
subPages[i],
subPages[i],
{
top:'0px',
bottom:'51px'
});
}
/**此处不写hide()方法也是可以的,运行时,其他页面创建出来后都在首页后面被遮住了好像,具体我也没懂**/
}
mui(".mui-bar-tab").on("tap","a",function(e){
var tagPage = this.getAttribute("href");
/**此处如果是点击首页,就隐藏其他页面,就会显示首页了**/
if(tagPage == 'index.html'){
for(var j=0;j<3;j++){
plus.webview.getWebviewById(subPages[j]).hide();
}
}else{
plus.webview.show(tagPage,"fade-in",300);
}
})
});
写的不好,多多指教!还有一个问题,双webview模式去加载的时候,每次点击列表进入详情页面的时候会执行两次 id 传值,是因为加载了两次 mui.js 这个问题我还没有解决,有解决办法的可以在下面留言给我,谢谢!
demo在下面,自己下载吧!