-
Notifications
You must be signed in to change notification settings - Fork 757
5. 第3方数据对接
jones edited this page Oct 28, 2021
·
12 revisions
所有HQChart内部请求的数据,都可以通过NetworkFilter回调函数截获,在回调里面可以阻止当次内部请求,替换成自己的数据. 在Option配置里面设置 NetworkFilter:function(data, callback) { } 这样每次数据请求时都会调用这个回调。
{
Name:原始的类名::函数名
Explain: 说明
Request: 原始的请求信息
Request.Type 请求类型
Request.Data 请求参数
Request.Url 请求地址
PreventDefault 是否阻止默认网路协议发送, 默认false, 如果设置成true, HQChart就不会再请求数据。
....... 以上是主要的字段, 其他的自己打印看下
}
数据设置到hqchart接口
function NetworkFilter(data, callback) //网络协议回调
{
console.log('[NetworkFilter] data', data);
data.PreventDefault=true; //设置hqchart不请求数据
switch(data.Name)
{
case 'KLineChartContainer::ReqeustHistoryMinuteData': //分钟全量数据下载
//通过data.Request里的数据 对应到第3方数据
$.ajax({
url:'第3方数据地址',
.....
success: function (data)
{
var hqchartData;//把第3方数据data转成 hqchart数据
callback(hqchartData); //把数据传回hqchart
}
});
break;
case 'KLineChartContainer::RequestMinuteRealtimeData': //分钟增量数据更新
............同上
break;
case 'KLineChartContainer::RequestHistoryData': //日线全量数据下载
............同上
break;
case 'KLineChartContainer::RequestRealtimeData': //日线实时数据更新
.............同上
break;
..................... //其他数据
}
}
小程序, uniapp 网络接口都是自己封装的, 真实的网络数据都在里面的data中, 传递给hqchart的时候也需要包一层
var hqChartData={code:0, data:[]};
hqChartData.symbol='BTCUSDT.BIT';
hqChartData.name='BTCUSDT';
.......
callback({data:hqChartData});