Как автоматически переключаться между современным и классическим приложением ExtJs - PullRequest
0 голосов
/ 06 ноября 2018

У меня есть метод, который переключается в современную версию после нажатия на кнопку:

 Ext.beforeLoad = function (tags) {
        var s = location.search,  // the query string (ex "?foo=1&bar")
            profile;

        if (s.match(/\bclassic\b/)) {
            profile = 'classic';
        }
        else if (s.match(/\bmodern\b/)) {
            profile = 'modern';
        }

        else {               
            profile = tags.phone ? 'modern' : 'classic';
        }

        Ext.manifest = profile; // this name must match a build profile name

    };

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

onSwitchToClassicConfirmed: function (choice) {
    if (choice === 'yes') {
        var s = location.search;

        // Strip "?modern" or "&modern" with optionally more "&foo" tokens following
        // and ensure we don't start with "?".
        s = s.replace(/(^\?|&)modern($|&)/, '').replace(/^\?/, '');

        // Add "?classic&" before the remaining tokens and strip & if there are none.
        location.search = ('?classic&' + s).replace(/&$/, '');
    }
}

Но я хочу автоматически переключаться между современным и классическим экраном, если устройство - телефон или планшет.

1 Ответ

0 голосов
/ 08 ноября 2018

Посмотрите на свойство Ext.os.deviceType , оно содержит информацию о текущем устройстве.
Описание из документов:

Общий тип текущего устройства.

Возможные значения:

  • Телефон
  • Tablet
  • Desktop

С помощью информации вы можете установить профиль

var profile = Ext.os.deviceType === "Phone" ? "modern" : "classic";
...