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>
那個安卓的說他那邊解析數據,讀取後台,,然後給我傳參數,,我就定義了兩個方法,每個方法裡兩個參數數組類型,,(兩個圖表裡分別有兩個數據),,,這樣不知道對不對? ? ? ?大神們可以給提出思路嗎? ?
安卓傳參數是字串,所以可以直接傳JSON 字串,web 端JSON.Stringify 解析即可。
我推測你這個是Hybrid開發,你是負責H5頁面的。 Native端已經從後台取得到數據,需要把數據轉寄給你,然後畫圖表。你現在不明白的是Android如何把資料傳給你,資料格式是怎麼樣的。
你可以看下我這個回答/q/10...,先把Native與H5之間的資料傳輸理清楚,回到你的問題上來,Native透過類似如下程式碼呼叫你在H5介面中寫的方法,
webview.loadUrl(javascript:yourFunc(data););
,傳遞的data是字串,你們可以自己定格式,通常是JSON字串,你需要把這個字串轉換成JSON,然後透過key取得就可以了