Ionic 2 — ng2-chartjs2 работает в браузере, но не в устройстве

#angular #ionic2 #ng2-charts

#angular #ionic2 #ng2-диаграммы

Вопрос:

Мне удалось реализовать ng2-chartjs2 в моем приложении ionic2. Он отлично работает, когда я запускаю его в браузере (т. Е. ionic serve или ionic run android -l -c), но когда я попробовал его на устройстве (т. Е. ionic run Android), он просто показывает пустую страницу.

Я загрузил рабочий образец проекта в свой репозиторий здесь

Любая помощь была бы оценена. Спасибо.

Все еще ожидаю, что кто-нибудь устранит эту проблему.

Ответ №1:

Ну, проблема здесь в том, что Chart.bundle.js не соответствует ожидаемому пути в сборке Android.

Добавьте это:

 var availablePlatforms = (process.env.CORDOVA_PLATFORMS ? process.env.CORDOVA_PLATFORMS.split(',') : []);

var filestocopy = [
  {"src/assets/libs/Chart.bundle.js": "platforms/android/assets/libs/Chart.bundle.js"}
];

for(var x=0; x<availablePlatforms.length; x  ) {

  var currentPlatform = availablePlatforms[x].trim().toLowerCase();

  if (currentPlatform == 'android') {
    filestocopy.forEach(function(obj) {
      Object.keys(obj).forEach(function(key) {
        var val = obj[key];
        var srcfile = path.join(rootdir, key);
        var destfile = path.join(rootdir, val);
        var destdir = path.dirname(destfile);
        if (fs.existsSync(srcfile) amp;amp; fs.existsSync(destdir)) {
          fs.createReadStream(srcfile).pipe(
              fs.createWriteStream(destfile));
        }
      });
    });

  }
}
  

В конце вашего hooks -> after_prepare -> 010_add_platform_class.js , затем измените ссылку на скрипт внутри вашегоindex.html на <script src="assets/libs/Chart.bundle.js"></script> (примечание: изменен график для диаграммы).

Удачи!

Комментарии:

1. Идеально @camaron. Еще раз спасибо.

2. У меня тоже есть эта проблема с ios. Жаль, что я не могу попробовать на работе. Работает ли это с ios или вы пробовали только для Android?

3. Я попробовал это для ios, но это не работает, даже если оно было скопировано правильно. пусть filestocopy_ios = [ {«src/assets/libs/Chart.bundle.js «: «platforms/ios/www/libs/Chart.bundle.js «} ];

4. @Mukus если у вас есть репозиторий git, пожалуйста, дайте мне URL-адрес, а также версию ionic, которую вы используете, проверьте, указан ли путь, по которому у вас должны быть файлы «platforms/ios/www/libs/Chart.bundle.js » возможно, это изменилось.

5. @camaron У меня работает chartjs, но без использования ng2-chartjs.