JS Chartsライブラリを使用して、AndroidアプリケーションのWebViewにグラフを描画しています。私はSQLiteデータベースからデータを提供したいと思います。この時点で、私はJavaからJavaScriptへのデータの配列を渡す方法について固執しています。 JavaScriptの部分はそのような何かを期待:WebViewのAndroidアクティビティからJavaScriptへの値の配列の受け渡し
data = new Array([10, 10], [20, 10]);
私がaddJavaScriptInterface
について知っていると私はWebViewのに私の活動から単一の値を渡すことができました。それは私にトラブルを与えるアレイだけです。今の私は、データをハードコーディングするんだけど、最終的には、これはデータベースから引き出されること
final class ChartDataLoader {
public double[][] getData() {
double[][] data = {{10, 10}, {20, 10}};
return data;
}
}
注:私はそのようなことを考えました。それでは、私は私のJSにこれを公開:
webView.addJavascriptInterface(new ChartDataLoader(), "dataLoader");
そして最後には、JavaScriptでそれを読み取ろう:
ERROR/Web Console(2455): Uncaught TypeError: Cannot read property 'length' of undefined at file:///android_asset/chart.html:15
任意のヒントを:
<html>
<head>
<script type="text/javascript" src="jscharts.js"></script>
</head>
<body>
<div id="chartcontainer">You should see a chart here.</div>
<script type="text/javascript">
myData = dataLoader.getData();
alert("DataReceived: " + myData.length);
alert("Element 0 : " + myData[0]);
var myChart = new JSChart('chartcontainer', 'line');
myChart.setDataArray(myData);
myChart.draw();
</script>
</body>
</html>
JavaScriptが述べそれら二つの警告文に失敗します?他の人が配列をStringに変換し、JavaScriptでそれを作り直すコードをオンラインで見たことがありますが、それは私にとって過酷なもののように思えます。別の方法として、XMLファイルをグラフライブラリに渡すことですが、グラフを表示するたびに新しいXMLを作成するのが遅くなると思いました。
まあ、はい...私はあなたが文字列を解析し、JSで配列を再作成する必要があると思います。しかし、私は見ていない、なぜそれはそのような問題だろうか? – LambergaR