Hbuider hybrid app开发---被预加载的页面无法在mui.init中去成功预加载其他页面的问题

(更多精彩内容请访问DCloud官网(http://www.dcloud.io/))

  1. 问题描述:
    在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
});
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值