Очень долгожданное обновление, но пока что вызывает не так много потизивного фидбека.
Только я подумал "о, завезли мобильную эмуляцию, теперь заживём, как люди", как начал разочаровываться по результатам первого теста.
В качестве подопытного кода, который возвращает true, если у польщователя тач-девайс:
Настройки проекта:
+ макс. эмуляция мыши в настройках (пробовал с включенной и выключенной галочкой)
Результат: всегда false.
В том же Chromium при переключении тоггла Device sidebar (Ctrl+Shift+M) результат: true.
То есть о чем это я:
- Как таковой тоггл отсутствует.
- Методы запуска хрома на аргументах типа --touch-events никакого результата не дают, тач с их помощью не воспроизвести (нет методов в конструкторе, а обычный клик это клик и ничто другое). (А в последней версии 7.1.4.0 Хром еще и отказывается с такими аргументами запускаться, вызывая в 100% случаев ошибку "Произошла ошибка в процессе браузера. Запустить браузер снова")
- Кастомно в конструкторе не выбрать ивенты типа touchstart touchend (вместо click), и в существующее действие тоже не вписать (пока что через C#, это не проблема).
- Через JS с помощью костылей вроде
или
и подобных - тоже ничего не получится, т.к. ивенты станут доступны в режиме эмуляции мобильного телефона (настройки в проекте не генерацию профиля на это не влияют) - а такого режима в Зенно пока что нет.
- Костыль из DevTools, из пункта More tools-> Sensors -> Touch -> Force enabled тоже не работает (и при его активации любые ивенты, в т.ч. мышкой перестают работать).
То есть по итогу инструмент в C# для нажатия на кнопки и прочие действия, область ответственности которых лежит на всякого рода touch* EventListener - нам дали, а базовый скоринг по идентификации мобилки - нет.
В итоге вроде бы и фулл-хром, а вроде бы и нет, и инструментов для включения тача (в том же папитре - это пара строчек), к сожалению, нам не дали.
А фильтры сайтов между тем не стоят не месте и всякие костыли из настроек проекта и браузера уже не имеют эффекта, остается только связки с Папитром юзать, а этого очень не хочется во многих рабочих случаях, т.к. создает диковинные по сложности костыли. Хочется цельный продукт, сильный сам по себе, тем более, что нативно в нем (в Хромиуме) эти возможности есть.
Или я не прав и смотрю не в ту сторону, и готовое решение прикинуться мобилкой всё-таки есть?
Только я подумал "о, завезли мобильную эмуляцию, теперь заживём, как люди", как начал разочаровываться по результатам первого теста.
В качестве подопытного кода, который возвращает true, если у польщователя тач-девайс:
JavaScript:
function is_touch_device4() {
var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');
var mq = function (query) {
return window.matchMedia(query).matches;
}
if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
return true;
}
// include the 'heartz' as a way to have a non matching MQ to help terminate the join
// https://git.io/vznFH
var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');
return mq(query);
}
console.log(is_touch_device4());
+ макс. эмуляция мыши в настройках (пробовал с включенной и выключенной галочкой)
Результат: всегда false.
В том же Chromium при переключении тоггла Device sidebar (Ctrl+Shift+M) результат: true.
То есть о чем это я:
- Как таковой тоггл отсутствует.
- Методы запуска хрома на аргументах типа --touch-events никакого результата не дают, тач с их помощью не воспроизвести (нет методов в конструкторе, а обычный клик это клик и ничто другое). (А в последней версии 7.1.4.0 Хром еще и отказывается с такими аргументами запускаться, вызывая в 100% случаев ошибку "Произошла ошибка в процессе браузера. Запустить браузер снова")
- Кастомно в конструкторе не выбрать ивенты типа touchstart touchend (вместо click), и в существующее действие тоже не вписать (пока что через C#, это не проблема).
- Через JS с помощью костылей вроде
JavaScript:
var e = document.createEvent('UIEvent');
e.initUIEvent();
JavaScript:
var e = document.createEvent('TouchEvent');
e.touches = [{pageX: pageX, pageY: pageY}];
- Костыль из DevTools, из пункта More tools-> Sensors -> Touch -> Force enabled тоже не работает (и при его активации любые ивенты, в т.ч. мышкой перестают работать).
То есть по итогу инструмент в C# для нажатия на кнопки и прочие действия, область ответственности которых лежит на всякого рода touch* EventListener - нам дали, а базовый скоринг по идентификации мобилки - нет.
В итоге вроде бы и фулл-хром, а вроде бы и нет, и инструментов для включения тача (в том же папитре - это пара строчек), к сожалению, нам не дали.
А фильтры сайтов между тем не стоят не месте и всякие костыли из настроек проекта и браузера уже не имеют эффекта, остается только связки с Папитром юзать, а этого очень не хочется во многих рабочих случаях, т.к. создает диковинные по сложности костыли. Хочется цельный продукт, сильный сам по себе, тем более, что нативно в нем (в Хромиуме) эти возможности есть.
Или я не прав и смотрю не в ту сторону, и готовое решение прикинуться мобилкой всё-таки есть?