2013-12-18 2 views
2

Есть ли какой-нибудь способ обнаружить, что пользователь приходит с мотором Blink или Webkit с двигателем Chrome? Кстати, мне также интересно, могу ли я где-нибудь проверить, если мой браузер с миганием или нет.Как обнаружить Blink в Chrome

+0

Где вы хотите это проверить? Javascript или язык программирования на стороне сервера. – Seb

+0

Оба будут в порядке. – wintercounter

ответ

5

Blink is Chrome 28+. Итак, если вы уже обнаруживаете Chrome через свой useragent, вы можете просто проверить: version >= 28 Хотя он не полностью надежен, если пользовательский агент подделан, очевидно.

Для дополнительного более надежным способом вы можете проверить статус chrome.notifications API, который стал доступен/стабильный с Blink/Chrome28 + (на ChromeOS, Windows и Mac, а затем Android 4.4)

Смотреть это answer для реф, и это documentation для деталей.

ОБНОВЛЕНИЕ: эта предыдущая идея была сложной и ненадежной. Я удалил его.

я столкнулся с особенностью, которая была добавлена ​​с Chrome 28 (а именно CSS.supports), который легче и чище:

if ((window.chrome || (window.Intl && Intl.v8BreakIterator)) && 'CSS' in window){ 
//Blink Engine 
} 

UPDATE 2: Добавлен дополнительный контроль, потому что некоторые моргания браузеры, такие как Opera Mobile или Maxthon не располагают достаточным window.chrome объект. Проверка функций v8 необходима для охвата всех текущих браузеров браузера Blink по состоянию на декабрь 2014 года.

И для полноты, так как вы также запросили язык программирования на стороне сервера: На стороне сервера или даже для JS в конечном итоге просто найдите WebKit/537.36. Только пользовательский агент Blink будет иметь версию Webkit. Насколько я могу судить, официальная версия Safari не была выпущена с этим номером сборки. Однако следите за отметками IEMobile, Trident или Edge с Windows IE now imitate Android and Blink.

+0

Итак, будет ли «537.36» надежной проверкой для Blink, теперь и для Chromium и Opera? – mightyiam

+1

@ShaharOr Если userAgent не подделан, да. Единственным потенциальным ложным положительным случаем, который вы могли бы видеть от пользователя * legal *, является использование режима рабочего стола на мобильном устройстве, которое может обмануть агент Blink. – hexalys

+1

@ShaharOr FYI, просто протестировал его - тестирование для 'window.CSS' относится и к Opera с Blink :) – pilau

Смежные вопросы