您的位置:首页 > 产品设计 > UI/UE

被预加载的页面无法在mui.init中去成功预加载其他页面的问题

2015-11-25 11:48 459 查看
问题描述:

在XXX项目中,诊所列表页面预加载诊所详情页面,之后成功打开诊所详情页面;在诊所详情页面上,存在医生列表,业务需要在该页面上实现预加载医生详情页面。

最初在诊所详情页使用该方法:

(通过mui.init方法中的preloadPages参数进行配置)

<script type="text/javascript" charset="utf-8">
mui.init({
preloadPages: [{
id: 'doctorInfo.html',
url: 'doctorInfo.html'
}]
});
</script>


添加监听、实现跳转
var detailPage = null;
mui.plusReady(function(){
//跳转诊所详情页面
mui("#doctor").on('tap', '.data-con', function() {
if (!detailPage) {
detailPage = plus.webview.getWebviewById("doctorInfo.html");
//获取预加载webview对象
}
//获取医生id
var id = this.getAttribute("id");
var ids = id.split("&");
var doctorId = ids[0];
var clinicId = ids[1];
//传值给详情页面,通知加载新数据
mui.fire(detailPage, 'getDetail', {
doctorId: doctorId,
clinicId: clinicId
});
})


结果:无法实现创建。

(可通过 var array = plus.webview.all();查看所有被创建的webview)

2. 查看官方文档,使用提供的第二种方法解决此问题。
(通过mui.preload方法预加载)


//选择性位置去调用(init()中不要使用)
var detailPage = null;
detailPage = mui.preload({
url:"doctorInfo.html",
id:"doctorInfo.html"
//默认使用当前页面的url作为id
});
var doctorId = ids[0];
var clinicId = ids[1];
//传值给详情页面,通知加载新数据
mui.fire(detailPage, 'getDetail', {
doctorId: doctorId,
clinicId: clinicId
});
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: