我的代码是:
require([
// Require the basic chart class
"dojox/charting/Chart",
// Require the theme of our choosing
"dojox/charting/themes/ThreeD",
// Charting plugins:
"dojox/charting/widget/SelectableLegend",
// We want to plot Lines
"dojox/charting/plot2d/Lines",
// We want to use Markers
"dojox/charting/plot2d/Markers",
// We'll use default x/y axes
"dojox/charting/axis2d/Default",
"dojox/charting/action2d/Tooltip",
"dojo/domReady!"
], function(Chart, theme,Legend, Line) {
dojo.ready(function(){
// When the DOM is ready and resources are loaded...
// Create the chart within it's "holding" node
var chart = new Chart("chartNode");
chart.title="Sales Revenue Trend";
// Set the theme
chart.setTheme(theme);
// Add the only/default plot
chart.addPlot("default", {
type: Line,labels:true,
markers: true
});
var myLabelFunc = function(text, value, precision){
if(text!="0")
return (parseFloat(text)/100000)+" lacs";
else
return text;
};
// Add axes
chart.addAxis("x",{labels: labels,majorTickStep:1,rotation: -90,title:"Date", titleOrientation:"away", titleFont: "normal normal bold",titleFontColor: "black"});
chart.addAxis("y", { vertical: true,minorLabels: false,minorTicks:true, fixLower: "major", fixUpper: "major",title:"Gross Revenue(INR)", titleFont: "normal normal bold",titleFontColor: "black",dropLabels: false, labelFunc: myLabelFunc});
// Add the series of data
for(i=0;i<cr.length;i++)
{
chart.addSeries(channels[i],cr[i]);
}
new dojox.charting.action2d.Tooltip(chart,"default");
// Render the chart!
chart.render();
var legend = new Legend({ chart: chart }, "legend");
});
});
以上代码适用于所有PC浏览器以及iOS设备。但问题出在Android设备上。我经历了Android设备的logcat,发现有脚本错误(详细错误:11-24 19:20:53.854:E / Web Console(335):错误:fileError上的scriptError:/// android_asset / www / dojo /dojo/dojo.js:15)。在PC浏览器上,它不显示任何错误(使用firebug调试)。
我尝试从require语句中删除“dojox / charting / action2d / Tooltip”。它也适用于Android。但我需要使用工具提示在图表中显示标记的值,但它会引发错误。那么,有什么解决方案吗?
答案 0 :(得分:1)
我怀疑您可能会面临Android工具不包含以APK中的下划线开头的文件(或目录)的问题。通过包含工具提示,您可能会包含一些以下划线开头的依赖项,从而解决问题。
您有两种方法可以修复,您可以“构建”您的Dojo代码(特别是请参阅Dojo教程),删除文件名中的任何下划线。
或者您可以告诉Android工具包含以下划线开头的文件(请参阅:https://code.google.com/p/android/issues/detail?id=5343#c40)。我没有测试过这个,有些人假装这不行。但我想说这值得测试。
请注意,执行构建是一个好主意,因为这会减少应用程序启动时要加载的文件数量,从而缩短启动时间。