1

を使用して、Fusionchartsのcolumn3dチャートをMonoTouchプロジェクトに埋め込もうとしていUIWebViewます。必要なアウトレットを追加し、loadrequestを使用してURLをロードしloadHtmlString、単純なテキスト行をフォーマットしてテストしました。これは正常に機能します。以下のコードを使用して、fusionchartがブラウザで正しく機能することをテストしました。

MonoTouchプロジェクトに、Column3d.swf、jquery.min.js、FusionCharts.js、FusionCharts.HC.js、FusionCharts.HC.Charts.jsを含む「charts」という名前のフォルダーがあります。

私の中で

  • ViewDidLoad

    string htmlString = "<html>
                         <head>
                         <script type=\"text/javascript\"src=\"Charts/jquery.min.js\">
                         </script>
                         <script type=\"text/javascript\" src=\"Charts/FusionCharts.js\">
                         </script>
                         <script type=\"text/javascript\" src=\"Charts/FusionCharts.HC.js\">
                         </script>
                         <script type=\"text/javascript\" src=\"Charts/FusionCharts.HC.Charts.js\">
                         </script>
                         </head>
                         <body>
                         <div id=\"chartContainer\">FusionCharts will load here!
                         </div>
                         <script type=\"text/javascript\"> var myChart = new FusionCharts( \"Charts/Column3D.swf\", \"myChartId\", \"400\", \"300\", \"0\", \"1\" );myChart.setXMLUrl(\"Charts/Data.xml\");
                        myChart.render(\"chartContainer\");
                         </script>
                         </body>
                         </html>";
    
    this.webView.LoadHtmlString (htmlString, new NSUrl ("./Charts", true));
    
        /*string htmlString = "<html><head></head><body><span style=\"font-weight: bold;\">This</span> " +
     "<span style=\"text-decoration: underline;\">is</span> <span style=\"font-style: italic;\">some formatted</span> " +"<span style=\"font-weight: bold;text-decoration: underline;\">text!</span><br></body></html>";*/  //works
    
        //this.webView.LoadHtmlString (htmlString, null);  //works
    
  • Data.xml

    <chart caption='Weekly Sales Summary'
    xAxisName='Week' yAxisName='Amount' numberPrefix='$'> 
    <set label='Week 1' value='14400' /> 
    <set label='Week 2' value='19600' /> 
    <set label='Week 3' value='24000' /> 
    <set label='Week 4' value='15700' /> 
    </chart>
    

誰かが私がこれを機能させる方法を説明できますか?前もって感謝します。

編集:私も試しました

    string htmlString = "<html><head> <title>Creating Pure JavaScript chart</title><script type=\"text/javascript\" src=\"charts/FusionCharts.js\"></script></head> <body><div id=\"chartContainer\">FusionCharts will load here!</div> <script type=\"text/javascript\">FusionCharts.setCurrentRenderer('javascript');var myChart = new FusionCharts( \"charts/Column3D.swf\", \"myChartId\", \"400\", \"300\", \"0\", \"1\" );myChart.setXMLData(\"<chart><set label='Data1' value='1' /></chart>\"); myChart.render(\"chartContainer\"); </script></body> </html>";

ここで、レンダラーにjavascriptを使用させ、文字列のチャートパラメーターを無効に設定します。誰?

4

3 に答える 3

1

私は自分の問題を解決し、誰かが同様の問題に遭遇した場合に投稿すると思いました.

最初にしたことは、FusionCharts.js、FusionCharts.HC.js、FusionCharts.HC.Charts.js などの各 JavaScript ファイルを右クリックし、ビルド タイプをコンテンツに設定することでした。

次に、次のように宣言して、チャートのビルド パスがチャート フォルダーに含まれるように Monotouch に指示しました。

string path = NSBundle.MainBundle.BundlePath + "/Charts/";

Charts フォルダーで関連ファイルを探すと宣言したので、次のようにすべての「src」から「charts」キーワード参照を削除して htmlString を修正する必要がありました(既に lo.

string htmlString = "<html>
                 <head>
                 <script type=\"text/javascript\" src=\"jquery.min.js\">
                 </script>
                 <script type=\"text/javascript\" src=\"/FusionCharts.js\">
                 </script>
                 <script type=\"text/javascript\" src=\"/FusionCharts.HC.js\">
                 </script>
                 <script type=\"text/javascript\" src=\"FusionCharts.HC.Charts.js\">
                 </script>
                 </head>
                 <body>
                 <div id=\"chartContainer\">FusionCharts will load here!
                 </div>
                 <script type=\"text/javascript\"> var myChart = new FusionCharts(\"Column3D.swf\", \"myChartId\", \"400\", \"300\", \"0\", \"1\"          );myChart.setXMLUrl(\"Charts/Data.xml\");
                myChart.render(\"chartContainer\");
                 </script>
                 </body>
                 </html>";

次に、javascript ファイルを含むパスを指す 2 番目の引数を使用して、次のように loadHtml 文字列メソッドを呼び出します。

this.webView.LoadHtmlString(htmlString, new NSUrl(path, true));
于 2012-05-07T09:51:37.467 に答える
0

FusionCharts は、iOS デバイスで HTML5 グラフを取得する方法を示すブログ投稿を公開していました。

ここでそれを見てください - http://blog.fusioncharts.com/2012/02/create-charts-for-iphone-and-ipad-apps-using-fusioncharts-xt/

于 2012-04-30T06:23:32.160 に答える
0

以下のコードを使用して、fusionchart がブラウザで正しく動作することもテストしました。

Safari を実行している iOS デバイスでこれをテストしましたか?

Column3d.swf を含むプロジェクト

これはFlashファイルのように見えますが、iOS (および WebKit) は Flash をサポートしていませ

Web サイトは HTML5 バージョンのヒントを示しています。したがって、フラッシュレス ブラウザをサポートしている場合は、FusionChart を使用して MonoTouch (または iOS の何か) を使用して、必要なことを実行できるはずです。それ以外の場合は、他のグラフ作成製品 (またはサーバー側のソリューション) を検討する必要がある場合があります。

于 2012-04-28T16:01:02.637 に答える