2016-11-30 82 views
1

我有一個雙Y圖表,它是通過Google Chart JavaScript庫生成的。Google圖表不顯示在iOS設備上

鏈接到我的圖上的jsfiddle: https://jsfiddle.net/fzmjd593/

,代碼:

 google.charts.load('current', {'packages':['line', 'corechart'], 'callback': drawChart}); 

     function drawChart() { 
      var date = new Date(); 
      var file_data = "00:00:01 0 22.6 C 40.2 %\n00:01:01 0 22.6 C 40.1 %"; 

      var items = file_data.split("\n"); 

      var array = []; 

      for (var i = 0; i < items.length - 1; i++) { 
       var row_items = items[i].split(" "); 
       var d = new Date(date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + row_items[0]); 
       array.push([d, Number(row_items[2]), Number(row_items[4])]) 
      } 

      var data = new google.visualization.DataTable(); 
      data.addColumn('datetime', 'Time'); 
      data.addColumn('number', "Temperature [C]"); 
      data.addColumn('number', "Relative humidity [%]"); 

      data.addRows(array); 

      var materialOptions = { 
       chart: { 
       }, 
       series: { 
        0: { axis: 'Temps' }, 
        1: { axis: 'Humidity' } 
       }, 
       axes: { 
        y: { 
         Temps: { label: 'Temperature [C]' }, 
         Humidity: { label: 'Relative humidity [%]' } 
        } 
       } 
      }; 

      var materialChart = new google.charts.Line(document.getElementById('chart_div')); 
      materialChart.draw(data, materialOptions); 
    } 

這是雙-Y圖示例略加修改的版本。

的問題是,它的正確顯示在PC(任何瀏覽器),機器人(在Chrome測試),但IOS設備(iPad/iPhone的)上都Safari和鉻圖表行不顯示:IPad screenshot

你有什麼想法,爲什麼它可能會像這樣工作?

回答

1

每次我看到了這樣的一個問題,與iOS,它歸結爲一個日期格式/構造

嘗試使用建築的每一行的日期不同的構造......

的下面的代碼片段使用下面的構造......

new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]);

 google.charts.load('current', {'packages':['line', 'corechart'], 'callback': drawChart}); 
 

 
     function drawChart() { 
 
      var date = new Date(); 
 
      var file_data = "00:00:01 0 22.6 C 40.2 %\n00:01:01 0 22.6 C 40.1 %\n00:02:01 0 22.7 C 40.1 %\n00:03:01 0 22.6 C 40.2 %\n00:04:01 0 22.6 C 40.2 %\n00:05:01 0 22.6 C 40.2 %\n00:06:01 0 22.6 C 40.2 %\n00:07:01 0 22.7 C 40.2 %\n00:08:01 0 22.6 C 40.2 %\n00:09:01 0 22.6 C 40.1 %\n00:10:01 0 22.6 C 40.2 %\n00:11:01 0 22.6 C 40.1 %\n00:12:02 0 22.6 C 40.1 %\n00:13:01 0 22.6 C 40.1 %\n00:14:01 0 22.6 C 40.2 %\n"; 
 

 
      var items = file_data.split("\n"); 
 

 
      var array = []; 
 

 
      for (var i = 0; i < items.length - 1; i++) { 
 
       var row_items = items[i].split(" "); 
 

 
       var tod = row_items[0].split(":"); 
 

 
       var d = new Date(date.getFullYear(), date.getMonth(), date.getDate(), parseInt(tod[0]), parseInt(tod[1]), parseInt(tod[2])); 
 

 
       var tod2 = [Number(tod[0] - 1), Number(tod[1]), Number(tod[2])]; 
 

 
       array.push([d, Number(row_items[2]), Number(row_items[4])]) 
 
      } 
 

 
      var data = new google.visualization.DataTable(); 
 
      data.addColumn('datetime', 'Time'); 
 
      data.addColumn('number', "Temperature [C]"); 
 
      data.addColumn('number', "Relative humidity [%]"); 
 

 
      data.addRows(array); 
 

 
      var materialOptions = { 
 
       chart: { 
 
       }, 
 
       series: { 
 
        0: { axis: 'Temps' }, 
 
        1: { axis: 'Humidity' } 
 
       }, 
 
       axes: { 
 
        y: { 
 
         Temps: { label: 'Temperature [C]' }, 
 
         Humidity: { label: 'Relative humidity [%]' } 
 
        } 
 
       } 
 
      }; 
 

 
        var materialChart = new google.charts.Line(document.getElementById('chart_div')); 
 
      materialChart.draw(data, materialOptions); 
 
    }
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="chart_div" style="width: 100%; height: 100%"></div>