Highcharts HTML5交互性图标使用教程
沉沙 2018-07-25 来源 : 阅读 1473 评论 0

摘要:本篇教程探讨了Highcharts HTML5交互性图标使用,希望阅读本篇文章以后大家有所收获,帮助大家对HTML5的理解更加深入。

本篇教程探讨了Highcharts HTML5交互性图标使用,希望阅读本篇文章以后大家有所收获,帮助大家对HTML5的理解更加深入。


实现步骤:
1、在官网https://www.hcharts.cn/download下载中心下载软件包,里面包含各种图标的js及html文件,根据具体情况将下载下来的js及html、css文件放入assets文件夹下,本例只实现了横向柱状图


2、显示图表,只需在html里引入highcharts.js即可

<!DOCTYPE HTML><html><head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Highcharts Example</title>

 

    <style type="text/css">

 

    </style></head><body><script src="../../code/highcharts.js"></script><script src="../../code/data.js"></script>

<div id="container" style="min-width: 310px; max-width: 800px; height: 600px; margin: 0 auto"></div>

 

<script type="text/javascript">

 

<!--// 图表配置-->var options = {

    chart: {

        type: 'bar'          //指定图表的类型,默认是折线图(line)

    },

    title: {

        text: ''                 // 标题

    },

    xAxis: {

        title:{

            text:'日期/日'

        },

        categories: ['1', '2', '3','4','5','6','7']   // x 轴分类

    },

    yAxis: {

        title: {

            text: '数量/捆'                // y 轴标题

        }

    },

    series: [{                              // 数据列

        name: '数量',                        // 数据列名

        data: [1, 2, 4,5,8,9]                     // 数据

    }]

};// 图表初始化函数var chart = Highcharts.chart('container', options);</script></body></html>

Activity中加载:

       String path = "file:///android_asset/examples/bar-basic/index.htm";

      // 启用支持javascript

        WebSettings settings = mWebView.getSettings();

        settings.setJavaScriptEnabled(true);

        settings.setCacheMode(WebSettings.LOAD_DEFAULT);

        settings.setDomStorageEnabled(true);

        settings.setAppCacheMaxSize(8 * 1024 * 1024);

        settings.setAllowFileAccess(true);

        settings.setAppCacheEnabled(true);

 

        mWebView.setVerticalScrollBarEnabled(false);

        mWebView.setHorizontalScrollBarEnabled(false);

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {

            mWebView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

        }

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {

            settings.setLoadsImagesAutomatically(true);

        } else {

            settings.setLoadsImagesAutomatically(false);

        }

        mWebView.loadUrl(path);

3、刷新数据
创建data.js,编写刷新方法,用于接收APP端传过来的数据进行重新配置
data.js如下:

function refresh(jsonStr){

    if(jsonStr==null){

        return;

    }

    var json = JSON.parse(jsonStr);

    // 图表配置

    var options = {

        chart: {

            type: 'bar'                          //指定图表的类型,默认是折线图(line)

        },

        title: {

            text: '' // 标题

        },

        xAxis: {

            title:{

                text:'日期/日'

            },

            categories: json.categories   // x 轴分类

        },

        yAxis: {

            title: {

                text: '数量/捆'                // y 轴标题

            }

        },

        series: [{                              // 数据列

            name: '数量',                        // 数据列名

            data:  json.datas                    // 数据

 

 

        }]

    };

    // 图表初始化函数

    var chart = Highcharts.chart('container', options);

};

在index.html里引入新创建的js文件
<script src="../../code/data.js"></script>

在WebView网页加载完后调用refresh方法,将输入传入js实现刷新功能

 //覆盖WebView默认使用第三方或系统默认浏览器打开网页的行为,使网页用WebView打开

        mWebView.setWebViewClient(new WebViewClient() {

            @Override

            public boolean shouldOverrideUrlLoading(WebView view, String url) {

                // 返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器

                view.loadUrl(url);

                return true;

            }

 

            @Override

            public void onPageFinished(WebView view, String url) {

                if (!mWebView.getSettings().getLoadsImagesAutomatically()) {

                    mWebView.getSettings().setLoadsImagesAutomatically(true);

                }

                loadUrl("javascript:refresh('" + getJsData() + "')");//通知js刷新数据

            }

        });

//需要更新的数据

  String getJsData() {

        JsData data = new JsData();

        data.datas = new int[31];

        for (int i = 0; i < 31; i++) {

            data.datas[i] = i + 5;

        }

        data.categories = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31"};

        String json = FastJsonTools.toJson(data);

        return json;

    }

此时的index.html

<!DOCTYPE HTML><html><head>

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

    <meta name="viewport" content="width=device-width, initial-scale=1">

    <title>Highcharts Example</title>

    <style type="text/css">

 

    </style></head><body><script src="../../code/highcharts.js"></script><script src="../../code/data.js"></script><div id="container" style="min-width: 310px; max-width: 800px; height: 600px; margin: 0 auto"></div>

 

<script type="text/javascript">//通过data.js来配置数据

</script></body></html>

实现过程中遇到的问题:ScrollView与WebView嵌套使用的时候,图表会出现显示不全的情况,这时可以通过修改
<div id="container" style="min-width: 310px; max-width: 800px; height: 600px; margin: 0 auto"></div>的height来解决(调低)。

 

本文由职坐标整理发布,欢迎关注职坐标WEB前端HTML5/CSS3频道,获取更多WEB前端知识!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程