如何在iOS中添加UIWebView的Highcharts?

我对HighCharts完全陌生,我提到了例子http://blog.li-labs.com/developing-ios-apps-with-custom-charting/并尝试过,但在iPad模拟器上,我得到一个空白屏幕。

我已经提到了堆栈溢出问题,但仍然无法正常工作。 任何人都可以告诉我哪里错了。

编辑:我的HTML文件中的代码:

 <!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Highcharts Example</title>

        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
        <script type="text/javascript">
$(function () {

        // Radialize the colors
        Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors, function(color) {
            return {
                radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },
                stops: [
                    [0, color],
                    [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
                ]
            };
        });

        // Build the chart
        $('#container').highcharts({
            chart: {
                plotBackgroundColor: null,
                plotBorderWidth: null,
                plotShadow: false
            },
            title: {
                text: 'Browser market shares at a specific website, 2010'
            },
            tooltip: {
                pointFormat: '{series.name}: <b>{point.percentage}%</b>',
                percentageDecimals: 1
            },
            plotOptions: {
                pie: {
                    allowPointSelect: true,
                    cursor: 'pointer',
                    dataLabels: {
                        enabled: true,
                        color: '#000000',
                        connectorColor: '#000000',
                        formatter: function() {
                            return '<b>'+ this.point.name +'</b>: '+ this.percentage +' %';
                        }
                    }
                }
            },
            series: [{
                type: 'pie',
                name: 'Browser share',
                data: [
                    ['Firefox',   45.0],
                    ['IE',       26.8],
                    {
                        name: 'Chrome',
                        y: 12.8,
                        sliced: true,
                        selected: true
                    },
                    ['Safari',    8.5],
                    ['Opera',     6.2],
                    ['Others',   0.7]
                ]
            }]
        });
    });


        </script>
    </head>
    <body>
<!--<script src="../../js/highcharts.js"></script>-->
<!--<script src="../../js/modules/exporting.js"></script>-->

<script type="text/javascript" src="highcharts.js"></script>
<script type="text/javascript" src="exporting.js"></script>

<div id="container" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
    </body>
</html>

如何在XCode中添加和使用Javascript库

以下是我如何处理XCode中的代码和数据的简单视图。

  • 从您喜欢的图表网站下载Javascript报告软件包。 在我的情况下:http://www.highcharts.com/download

  • 将文件添加或导入XCode资源。 (我建议创建一个名为JS的组)。

  • 向XCode添加资源时,通常会将其标记为需要编译。 确保文件未被列为“已编译”。 最简单的方法是将文件从目标 - >您的项目名称 - >编译源文件拖入目标 - >您的项目名称 - >复制包资源。

  • 创建一个测试html文件或者从HighChart(或任何其他的javascript图表库)示例文件夹中导入一个。 在我的情况下,我将它命名为hcpie.html

  • 确保标签中的任何文件引用不会递归或移动到任何文件夹中(即使它们在您的项目中)。 例如

  • RIGHT =

    错误=

  • 在界面设计器中创建一个UIWebView并将其链接到您的视图(在我的例子中,我将它命名为chart1)。 例如
  • @interface FirstViewController:UIViewController {IBOutlet UIWebView * chart1; }

    @结束

  • 加载时只需引用HTML示例文件。

  • (void)viewDidLoad {
  • NSString * pathOfFile = [[NSBundle mainBundle] pathForResource:@“hcpie”ofType:@“html”]; NSString * htmlText = [NSString stringWithContentsOfFile:pathOfFile encoding:NSUTF8StringEncoding error:nil];

    NSURL * baseURL = [NSURL fileURLWithPath:pathOfFile];

    [chart1 loadHTMLString:htmlText baseURL:baseURL];

    [super viewDidLoad];

    }


    脚步:-

    1)首先创建一个HTML文件,并执行必要的代码或试用可以从http://www.highcharts.com/download下载的示例中复制HTML代码。

    2)确保html中的脚本应该有正确的.js链接,例如: - <script src="http://code.highcharts.com/highcharts.js"></script>

    要么

    如果你想在本地给它,你可以编写<script src="highcharts.js"></script>但是确保.js文件存在于你的应用程序文件夹中。

    3) NSString *htmlFile = [[NSBundle mainBundle] pathForResource:@"graph" ofType:@"html"];
       NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
       [obj loadHTMLString:htmlString baseURL:nil];  // Webview *obj;
    

    希望这对你有所帮助。 在我的情况下,它的工作。


    我尝试了这篇文章中的建议,无法获得HighChart加载。

    问题最终成为“loadHTMLString”调用。 通过baseURL传递nil是不正确的。 以下是我的工作原理 - 我需要通过实际的baseURL:

    NSString *htmlFile = [[NSBundle mainBundle] pathForResource:url ofType:@"html"];
    NSString* htmlString = [NSString stringWithContentsOfFile:htmlFile encoding:NSUTF8StringEncoding error:nil];
    
    NSURL *baseURL = [NSURL fileURLWithPath:htmlFile];
    
    [webView loadHTMLString:htmlString baseURL:baseURL];
    

    在UIWebView中调用.html的有用代码。

    -(void)viewDidLoad
       {
         NSString *pathOfFile = [[NSBundle mainBundle]  pathForResource:@"chart" ofType:@"html"]; 
    
         NSString *htmlText =[NSString stringWithContentsOfFile:pathOfFile encoding:NSUTF8StringEncoding error:nil];
    
         NSURL *baseURL = [NSURL fileURLWithPath:pathOfFile];
    
        [UIWebView loadHTMLString: htmlText baseURL:baseURL];
       }
    
    链接地址: http://www.djcxy.com/p/72681.html

    上一篇: How to add Highcharts on UIWebView in iOS?

    下一篇: Width of PDF file is less that iPad screen, what should do?