javascript - echarts做的兩個圖表,安卓的怎么傳參數過來??
問題描述
echarts做的兩個圖表,安卓的怎么傳參數過來??代碼如下::<script type='text/javascript'>
function setEchart(data,nums){ var myChart = echarts.init(document.getElementById(’zh-chart’)); var option = {title:{ text:’每小時的起飛航班總數和每小時的航班延誤數對比分析’, padding:[10,10], x: ’center’, align: ’right’, textStyle: {color: ’#fff’,fontSize: 14, }},tooltip : { trigger: ’axis’, axisPointer : {type : ’shadow’ }, textStyle: {color: '#2088C2',fontSize: 12 },},legend: { data:[’每小時的起飛航班總數’,’每小時的航班延誤數’], textStyle: {color: ’#fff’,fontSize: 14, }, padding:[35,15]},xAxis : [ {type : ’category’,// data : [’050416’,’050417’,’050418’,’050419’,’050420’,’050421’,’050422’,’050423’,’050500’,’050501’,’050502’,’050503’,’050504’,’050505’,’050506’,’050507’,’050508’,’050509’,’050510’,’050511’,’050512’,’050513’,’050514’,’050515’],data:data,nameTextStyle: { color: ’#fff’, fontSize: 14,},axisLine: { lineStyle: {color: ’#ccc’ }},axisLabel: { textStyle: {color: '#9ea4ba',fontSize: 13 }} }],yAxis : [ {type : ’value’,nameTextStyle: { color: ’#fff’, fontSize: 14},splitLine: { show: false},axisLine: { lineStyle: {color: ’#ccc’ }},axisLabel: { textStyle: {color: '#9ea4ba',fontSize: 13 },} }],series : [ {name:’每小時的起飛航班總數’,type:’bar’,itemStyle: { normal: {barBorderRadius: 5,color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [{offset: 0, color: ’#14c8d4’},{offset: 1, color: ’#43eec6’} ]) }},// data:[1, 0, 0, 0, 0, 3,12, 21, 14, 10, 17, 14, 14,16, 15, 14, 13, 15, 15,10,12,10, 15, 5]data:nums, }, {name:’每小時的航班延誤數’,type:’bar’,itemStyle: { normal: {barBorderRadius: 5,color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [{offset: 0, color: ’#ce0320’},{offset: 1, color: ’#f71334’} ]) }},data:nums, }] }; myChart.setOption(option); window.onresize=function(){myChart.resize() }}setEchart();function setchart2(dataRate,numRate){ var myChart2 = echarts.init(document.getElementById(’zh-cahrt2’)); var option2 = {title:{ text:’全天總正常率和每小時正常率統計對比分析’, padding:[10,10], x: ’center’, align: ’right’, textStyle: {color: ’#fff’,fontSize: 14, }},tooltip : { trigger: ’axis’, axisPointer : { type : ’shadow’ }, textStyle: {color: '#2088C2',fontSize: 12 },},legend: { data:[’24小時的總正常率統計’,’每小時的正常率統計’], textStyle: {color: ’#fff’,fontSize: 14, }, padding:[35,15]},xAxis : [ {type : ’category’,// data : [’050416’,’050417’,’050418’,’050419’,’050420’,’050421’,’050422’,’050423’,’050500’,’050501’,’050502’,’050503’,’050504’,’050505’,’050506’,’050507’,’050508’,’050509’,’050510’,’050511’,’050512’,’050513’,’050514’,’050515’],data:dataRate,nameTextStyle: { color: ’#fff’, fontSize: 16,},axisLine: { lineStyle: {color: ’#ccc’ }},axisLabel: { textStyle: {color: '#9ea4ba',fontSize: 13 }} }],yAxis : [ {type : ’value’,nameTextStyle: { color: ’#fff’, fontSize: 16},splitLine: { show: false},axisLine: { lineStyle: {color: ’#ccc’ }},axisLabel: { textStyle: {color: '#9ea4ba',fontSize: 13 },} }],series : [ {name:’24小時的總正常率統計’,type:’line’,itemStyle: { normal: {barBorderRadius: 5,color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [{offset: 0, color: ’#14c8d4’},{offset: 1, color: ’#43eec6’} ]) }},// data:[0, 0, 0, 0, 0,25, 81.25,83.78, 86.27,88.52, 91.03,91.3, 91.51,91.8, 91.97, 92.05,92.68, 92.74, 91.24,91.18,90.28,90.71, 90.04, 89.02]data:numRate, }, {name:’每小時的正常率統計’,type:’line’,itemStyle: { normal: {barBorderRadius: 5,color: new echarts.graphic.LinearGradient( 0, 0, 0, 1, [{offset: 0, color: ’#ce0320’},{offset: 1, color: ’#f71334’} ]) }},// data:[0, 100, 100, 100, 100, 33.33,100, 85.71, 100, 100, 100, 92.86, 92.86,93.75, 93.33, 92.86, 100, 93.33, 73.33,90,75,100, 80, 40]data:numRate }] }; myChart2.setOption(option2); window.onresize=function(){myChart2.resize() }}setchart2();
</script>那個安卓的說他那邊解析數據,讀取后臺,,然后給我傳參數,,我就定義了兩個方法,每個方法里兩個參數數組類型,,(兩個圖表里分別有兩條數據),,,這樣不知道對不對????大神們可以給提出思路嗎??
問題解答
回答1:安卓傳參數是字符串,所以可以直接傳JSON 字符串,web 端JSON.Stringify 解析即可。
回答2:我推測你這個是Hybrid開發,你是負責H5頁面的。Native端已經從后臺獲取到數據,需要把數據轉發給你,然后畫圖表。你現在不明白的是Android如何把數據傳給你,并且數據格式是怎樣的。你可以看下我這個回答/q/10...,先把Native與H5之間的數據傳輸理清楚,回到你的問題上來,Native通過類似如下代碼調用你在H5界面中寫的方法,webview.loadUrl(javascript:yourFunc(data););,傳遞的data是字符串,你們可以自己定格式,通常是JSON字符串,你需要把這個字符串轉化成JSON,然后通過key獲取就可以了
