Mar*_*ark 4 javascript java android android-webview
我正在使用JS Charts库在我的Android应用程序的WebView中绘制图形.我想提供SQLite数据库中的数据.此时我仍然坚持如何将数据从Java传递到JavaScript.JavaScript部分需要这样的东西:
data = new Array([10, 10], [20, 10]);
Run Code Online (Sandbox Code Playgroud)
我知道addJavaScriptInterface并且我设法将单个值从我的Activity传递给WebView.这只是阵列给我带来麻烦.我想到了类似的东西:
final class ChartDataLoader {
public double[][] getData() {
double[][] data = {{10, 10}, {20, 10}};
return data;
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,目前我只是对数据进行硬编码,但最终会从数据库中提取出来.那么我把它暴露给我的JS:
webView.addJavascriptInterface(new ChartDataLoader(), "dataLoader");
Run Code Online (Sandbox Code Playgroud)
最后尝试用JavaScript阅读:
<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>
Run Code Online (Sandbox Code Playgroud)
JavaScript在这两个警告声明中失败,说明:
错误/ Web控制台(2455):未捕获的TypeError:无法读取文件中未定义的属性"长度":///android_asset/chart.html:15
任何提示?我在网上看到了一些代码,其他人将数组转换为String,然后用JavaScript重新创建它,但这似乎对我来说太过分了,我希望有更好的解决方案.另一种方法是将XML文件传递给图表库,但同样,我认为每次用户想要查看图表时创建新XML都会很慢.
| 归档时间: |
|
| 查看次数: |
6831 次 |
| 最近记录: |