蓝eva枫
蓝eva枫
  • 发布:2016-06-14 15:22
  • 更新:2016-06-14 15:43
  • 阅读:1309

预加载失败原因

分类:MUI

// var id = this.getAttribute('id');
// alert(id);
//获得详情页面
if(!detailPage){
detailPage = plus.webview.getWebviewById("detail.html");
}
alert(detailPage);
//触发详情页面的newsId事件
mui.fire(detailPage,'newsId',{
//id:id
});
//打开详情页面

mui.openWindow({
id:"detail.html"
});
});

获取的detailPage一直为空,偶先一次成功了,什么原因?

2016-06-14 15:22 负责人:无 分享
已邀请:
无名2015

无名2015

你这代码写的有点乱。。。
mui.openWindow 是用来打开一个新页面的
你应该是要获取到一预载的页面或者已经存在的页面 然后执行fire事件改变这个页面的逻辑
你可以这样写:

// var id = this.getAttribute('id');  
// alert(id);  
//获得详情页面  
var detailPage = plus.webview.getWebviewById("detail.html");  
if(!detailPage){  
    detailPage = plus.webview.create("detail.html");  
}  
alert(detailPage);  
//触发详情页面的newsId事件  
mui.fire(detailPage,'newsId',{  
//id:id  
});  
//打开详情页面  
detailPage.show('slider-in-right', 150);
蓝eva枫

蓝eva枫 (作者)

mui.init({
preloadPages:[{
id:"detail.html",
url:"detail.html"
}
],
});

    var detailPage = null;  
    //添加列表项的点击事件  
    mui('.mui-scroll').on('tap', '.mui-table-view-cell', function(e) {  
      var id = this.getAttribute('id');  
      //获得详情页面  
      if(!detailPage){  
        detailPage = plus.webview.getWebviewById('detail.html');  
      }  
      alert(detailPage);  
      //触发详情页面的newsId事件  
      mui.fire(detailPage,'newsId',{  
        id:id  
      });  
    //打开详情页面            
      mui.openWindow({  
        id:"detail.html"  
      });  
    });    

按照官网这种方式为什么不可以了呢?

  • 无名2015

    你这段代码在哪看到的 逻辑有问题的 你声名了一个detailPage=null 如果有创建 或者preload一个detailPage页面的话 那他就一直为null detailPage = plus.webview.getWebviewById('detail.html'); 这个方法也是获取你创建或者preload的页面webview而已

    2016-06-14 15:47

  • 蓝eva枫 (作者)

    回复 无名2015: preloadPages 这个该怎么正确使用呢,你提供的mui.preload这个方法,我测试是可以的。

    2016-06-14 15:50

  • 无名2015

    http://dev.dcloud.net.cn/mui/window/#preload

    2016-06-14 15:53

该问题目前已经被锁定, 无法添加新回复