JSoon
JSoon
  • 发布:2014-11-18 12:50
  • 更新:2016-05-30 10:16
  • 阅读:9971

mui 中的 mui.init 到底应该放在 mui.plusready 外面还是里面?

分类:MUI
mui

如下:

mui.init({  

  subpages: [{  
    url: 'foo.html',  
    id: 'foo.html'  
  }]  

});  

mui.plusready(function() {  
  var wv = plus.webview.getWebviewById('foo.html'); // undefined  
});
mui.plusready(function() {  

  mui.init({  

    subpages: [{  
      url: 'foo.html',  
      id: 'foo.html'  
    }]  

  });  
  var wv = plus.webview.getWebviewById('foo.html'); // object  

});

如这两段代码所示,我就感到困惑了,既然会出现这样的情况,为何不强制要求 mui.init 出现在 mui.plusready 以内呢?这样不会产生诸如此类的问题么?

2014-11-18 12:50 1 条评论 分享
已邀请:
Danny

Danny - QQ125904483

mui.init是异步执行,执行完mui.init方法后立即获得对应webview引用,可能会失败。既然楼主是想立即使用WebView的引用,为何要在一棵树上吊死呢,为啥不试试:

通过mui.preload()方法预加载,可立即返回对应webview的引用,但一次仅能预加载一个页面;若需加载多个webview,则需多次调用mui.preload()方法;

DCloud_UNI_CHB

DCloud_UNI_CHB

目前确实无法保证mui.init和mui.plusready的执行顺序,若要立即使用mui.init初始化后的webview,建议将mui.init放在mui.plusready方法中;
后续我们想想办法吧。

  • JSoon (作者)

    好的,望改进

    2014-11-18 13:01

  • bxdsam

    哈哈哈哈,现在我遇到的问题,图二都是undefined,真是刺激...

    2016-11-29 11:28

  • 你猜猜我是谁

    现在呢?能顺序执行了吗

    2019-01-17 14:59

刘林

刘林

我怎么把mui.init 放到 mui.plusready mui.init 就生效了? 好纠结 请问楼主怎么解决的

qmit

qmit

同问中,现在是个什么情况呢?

要回复问题请先登录注册