流程:在登录页面预加载首页, 首页有个子页面, 子页面里包含了一个echart图表。
如果我通过 mui.openWindow 打开页面 echart 会显示, 但是通过预加载后,用plus.webview.show(indexPage) 打开页面,echart不显示。
流程:在登录页面预加载首页, 首页有个子页面, 子页面里包含了一个echart图表。
如果我通过 mui.openWindow 打开页面 echart 会显示, 但是通过预加载后,用plus.webview.show(indexPage) 打开页面,echart不显示。
7***@qq.com - 邯许
我也遇到了同样的问题,折腾了好久终于找到一个解决方案;
在tab选项卡切换时候加一个自定义事件,然后在echart那个页面监听;
window.addEventListener('send', function(event) {
//获得事件参数
mui.plusReady(function() { //这个是关键,不加这个也不显示
..//调用图表初始化方法
})
});
如果是预加载页面可以这样
第一个页面 申明一个变量 var da=1;
mui.fire(energyPage,"sent",{data:da});
da++;
mui.plusReady(function() {
window.addEventListener("sent", function(event) {
var alarmFla = event.detail.data;
if(alarmFla == 1) {
location.reload();
}
});
});
unionw - 忙的天昏地暗
我试了很多遍,页面预加载是加载不出来echarts的图表。你的逻辑是可行的。先在预加载的页面(按你的就是index.html)做预加载,打开echart.html页的事件里添加
mui.fire(plus.webview.getWebviewById('echart.html'), 'updateEchart');
建议放打开事件后面。
然后在echart.html页面里
var pieChart做全局变量。
document.addEventListener('updateEchart', function(event) {
console.log("initEchart");
pieChart = echarts.init(document.getElementById("pieChart"));
pieChart.setOption(getOption());
});
后面再就可以使用
pieChart.setOption(getOption());
对异步数据进行刷新了
2***@qq.com
用了你的方法,第一次打开页面仍然加载不了echart,报错 Dom’s width & height should be ready before init. at js/echart/echarts-all.js:1;只有切换别的tab,再次切换回来以后才会正确加载,就不会报错了,真是郁闷,都夜里12点半了。
mui.plusReady(function() { //这个是关键,不加这个也不显示
console.log("plusReady initEchart");
echarts.init(document.getElementById("pieChart"));
});
2018-03-09 00:28
7***@qq.com
我的是在选项卡页面里面添加自定义事件 然后在echart页面监听后让后渲染
2018-03-10 10:01