如下:
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 以内呢?这样不会产生诸如此类的问题么?
4 个回复
Danny - QQ125904483
mui.init是异步执行,执行完mui.init方法后立即获得对应webview引用,可能会失败。既然楼主是想立即使用WebView的引用,为何要在一棵树上吊死呢,为啥不试试:
通过mui.preload()方法预加载,可立即返回对应webview的引用,但一次仅能预加载一个页面;若需加载多个webview,则需多次调用mui.preload()方法;
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
同问中,现在是个什么情况呢?