Учебники

Sencha Touch — профиль устройства

В современном мире технологий у нас есть несколько устройств, таких как мобильные устройства, планшеты, настольные компьютеры и ноутбуки с различными размерами экрана. Следовательно, существует необходимость разработки приложений, которые доступны со всех устройств с хорошим внешним видом. Однако разработка разного кода для разных устройств очень трудоемка и затратна.

Sencha Touch помогает нам в этом, предлагая функцию профиля устройства. На основе активного профиля будут запущены и применимы различные зависимости.

Мы можем объявить профиль устройства при написании кода приложения. Мы можем иметь несколько устройств как —

Ext.application({
   name: 'MyApp',
   profiles: ['Phone', 'Tablet']
});

Как только это будет сделано, профили будут загружены как —

  • MyApp.profiles.Phone.js
  • MyApp.profiles.Tablet.js

Написание простого профиля телефона

Ext.define('Mail.profile.Phone', {
   extend: 'Ext.app.Profile',

   config: {
      name: 'Phone',
      views: ['phoneView']
   },

   isActive: function() {
      return Ext.os.is('Phone');
   }
});

Написание простого профиля планшета

Ext.define('Mail.profile.Tablet', {
   extend: 'Ext.app.Profile',

   config: {
      name: 'Tablet',
      views: ['tableView']
   },

   isActive: function() {
      return Ext.os.is('Tablet');
   }
});

Как видно из профиля, у нас есть функция isActive, которая определяет, является ли конкретное устройство активным. Если устройство активно, соответствующие зависимости будут загружены и созданы.

Как упомянуто в приведенном выше примере, если мы используем телефонное устройство, функция isActive профиля телефона вернет значение true, и зависимости, связанные с телефонным устройством, будут загружены; здесь PhoneView будет загружен. Если устройство является планшетом, то функция isActive профиля телефона вернет false, а функция isActive профиля планшета вернет true, и будет загружена таблетка зависимостей.

Процесс запуска

Здесь следует отметить еще один момент: когда у нас есть профили в приложении, загрузка и создание экземпляра кода приложения будут осуществляться в следующем порядке:

  • Сначала создаются экземпляры контроллеров, и будет загружена функция инициализации каждого контроллера.
  • Будет вызвана функция запуска профиля.
  • Будет вызвана функция запуска приложения.

Функции запуска профиля и приложения являются необязательными, поэтому, если мы не определим ни одну из них, они не будут вызваны.

Взгляните на следующий код, чтобы проверить, где и как могут быть определены различные функции запуска и инициализации.