Ionic 1 кеширование js lib - PullRequest
       2

Ionic 1 кеширование js lib

0 голосов
/ 13 октября 2019

Я унаследовал приложение ionic 1, и у меня странная проблема с ним. Я обновил js lib (клиент paho mqtt), потому что это была старая версия с проблемами. Я протестировал обновление с большим количеством эмуляторов Android со всеми видами API. Все работает нормально.

Проблема в том, что когда я устанавливаю его на реальный телефон, он все еще использует старую библиотеку js. Но это происходит только на телефонах, на которых установлена ​​предыдущая версия приложения. Если я устанавливаю его на любой телефон (независимо от версии Android), на котором никогда не было установлено приложение, все работает отлично.

Я думаю, что телефоны с этим приложением как-то кэшируют js lib или что-то в этом роде. ,Я очистил кеш приложения, данные, удалил его. Это не имеет значения.

Есть ли другой кэш, который я мог бы очистить?

Спасибо

Обновление

JSи CSS-файлы объединяются в один файл. Вот что у меня есть в gruntfile:

// concat all the scripts in one and all the styles in one
    concat: {
      options: {
        separator: ''
      }
      ,
      'scripts': {
        src: [
          'app/js/app.js',
          'app/js/controllers/*.js',
          'app/js/services/*.js',
          'app/js/filters/*.js',
          'app/js/directives/*.js',
        ],
        dest: 'www/scripts/scripts<%= grunt.option(\"timestamp\") %>.min.js',
      }
      ,
      'libraries': {
        src: [
          'app/libraries/ionic/js/ionic.bundle.min.js',
          'app/libraries/angular-material/angular-material.js',
          'app/libraries/ion-datetime-picker/ion-datetime-picker.min.js',
          'app/libraries/angular/angular-aria.js',
          'app/libraries/angular/angular-filter.js',
          'app/libraries/angular/angular-translate.js',
          'app/libraries/moment.js',
          'app/libraries/moment-timer.js',
          'app/libraries/leaflet/leaflet.js',
          'app/libraries/oms.min.js',
          'app/libraries/mqtt31.js',
          'app/libraries/angular-cookies.min.js',
          'app/libraries/dropzone/dropzone.js',
          'app/libraries/dropzone/ngdropzone/ng-dropzone.min.js',
        ],
        dest: 'www/scripts/libraries.min.js',
      }
      ,
      'styles': {
        src: [
          'app/libraries/ionic/css/ionic.min.css',
          'app/libraries/angular-material/angular-material.css',
          'app/libraries/ion-datetime-picker/ion-datetime-picker.min.css',
          'app/libraries/leaflet/leaflet.css',
          'app/libraries/magic.css',
          'app/libraries/dropzone/ngdropzone/dropzone.css',
          'app/libraries/dropzone/ngdropzone/ng-dropzone.min.css',
          'app/css/*.css',
        ],
        dest: 'www/resources/css/styles<%= grunt.option(\"timestamp\") %>.min.css',
      }
      ,
      'libsAndScripts': {
        src: [
          'www/scripts/libraries.min.js',
          'www/scripts/scripts<%= grunt.option(\"timestamp\") %>.min.js',
        ],
        dest: 'www/scripts/scripts<%= grunt.option(\"timestamp\") %>.min.js',
      }
    }

Затем полученный файл js включается в приложение из index.html:

<script src="scripts/scripts1570989249364.min.js"></script>

1 Ответ

0 голосов
/ 17 октября 2019

После дальнейшего изучения, это была не проблема с компонентами кэширования ionic / android, а с некоторым очень сложным и ошибочным способом обработки пользователей и паролей в брокере mqtt, который приводит к невозможности надлежащего соединения с библиотекой paho mqttиз ионного приложения в некоторых случаях.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...