2013-11-24 50 views
0

我的代碼是:道場圖表沒有在Android設備上加載

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控制檯(335):錯誤:scriptError在文件:/// android_asset/www/dojo /dojo/dojo.js:15)。在PC瀏覽器上,它不顯示任何錯誤(使用螢火蟲調試)。

我試圖從require語句中刪除「dojox/charting/action2d/Tooltip」。它也適用於Android。但我需要使用工具提示在圖表中顯示標記的值,但會引發錯誤。那麼,有沒有解決辦法?

回答

1

我懷疑你可能會遇到Android工具不包括以APK中的下劃線開頭的文件(或目錄)的問題。通過包含工具提示,您可能會包含一些由下劃線開始的依賴關係,因此會出現問題。

有兩種方法可以修復您可以「構建」您的Dojo代碼(特別參見Dojo教程),刪除文件名中的任何下劃線。

或者您可以告訴Android工具包含以下劃線開頭的文件(請參閱:https://code.google.com/p/android/issues/detail?id=5343#c40)。我沒有測試過這個,有些人假裝這是行不通的。但我會說這值得測試。

請注意,進行構建是一個好主意,因爲這會減少在應用程序啓動時加載的文件數量,從而縮短啓動時間。

相關問題