按下返回键后用如下方法打出预加载的页面只剩下首页能打出来,预加载的子页面都没有了,但是点击mui定义的头部back按钮,就不会出现该问题
mui.plusReady(function(){
setTimeout(function(){
var array = plus.webview.all();
if(array){
for(var i=0,len=array.length;i<len;i++){
console.log(array[i].getURL());
}
}
},5000)
});
5 个回复
DCloud_UNI_FXY
你是否自己重写了mui.back方法?
等烟雨 (作者)
没有重写子页面的,只重写了主页面的,应该没有影响吧,不过好像预加载页面并没有消失,只是跳转到子页面后没有执行子页面的任何东西,我通过自定义事件传值了,可能是传值那里出问题了吗?
主页面代码:
var listPage = mui.preload({
url:'List_test.html',
id:'List_test.html'
});
$.plusReady(function() {
plus.navigator.closeSplashscreen();
mui('#backGround').on('tap', 'a', function(e) {
var uid;
var id;
var type;
var strId = this.getAttribute('id');
var strHref = this.getAttribute('href');
console.log(strId+" "+strHref);
var strs= new Array(); //定义一数组
strs=strId.split("_"); //字符分割
for (i=0;i<strs.length ;i++ ){
uid=strs[0];
id=strs[1];
type=strs[2];
}
//触发子页面的getParam事件
mui.fire(listPage,'getParam',{
uid:uid,
pid:id,
});
//打开子页面
mui.openWindow({
id:strHref,
url:this.href
});
});
});
子页面接收参数代码:
window.addEventListener('getParam',function(event){
//获得事件参数
uid = event.detail.uid;
pid = event.detail.pid;
console.log(pid);//一按返回键,再点进来这个子页面,这里就打不出来了
等烟雨 (作者)
没有重写,只是重写了首页的退出的提示,应该没有影响吧,能不能重写一下mui.back方法写成mui定义的头部back按钮的方法,这个方法怎么写啊在js里找不到
DCloud_UNI_FXY
把你的工程发出来
黑虎
不知道这个问题解决了没?
我们也出现相同问题。
不管点击导航back,还是返回键,都出现返回就出现的预加载的sub页面丢失;
结构是这样的
首页.html->列表页.html(此处预加载“详情.html”)->详情页(含有sub子页面)
返回首页,再次进入点击列表进入详情页,就出现“sub子页面”已经不存在了内存中了