Има ли някакъв начин да се установи дали потребителят е стартирал таблетен или настолен браузър на microsoft edge?

Браузърът Microsoft edge връща един и същ потребителски агент както за таблет с Windows 10, така и за настолен компютър. Затова, моля, помогнете ми в разграничаването на браузърите за таблети и настолни компютри на micosoft edge чрез всякакви функции на javascript или откриване на потребителски агент или по друг начин.

Забележка: Обикновено разграничаваме браузърите за таблети и настолни компютри по събития на показалеца. таблетът поддържа събития с указател, докато настолният компютър не поддържа. В Windows 10 дори работният плот поддържа събития с показалец


person sridhar..    schedule 03.08.2015    source източник
comment
Какъв проблем наистина се опитвате да разрешите? По принцип трябва да използвате откриване на функции, а не откриване на браузър или устройство, тъй като функциите в даден браузър се променят през цялото време.   -  person jfriend00    schedule 03.08.2015
comment
здрасти Просто исках да знам дали потребителят преглежда уебсайта ми от браузър за таблет или от браузър за настолен компютър. Не можах да ги различа дори чрез откриване на характеристики   -  person sridhar..    schedule 03.08.2015
comment
Вече няма твърдо разграничение между таблет и настолен компютър или софтуера, който работи на тях. Можете да имате компютър, който стои на бюро с клавиатура, където екранът изскача от стойката и може да се носи като таблет. Вероятно трябва да забравите за опитите да запишете различен настолен компютър срещу таблет в наши дни. Можете да запишете дали устройството има възможности за докосване, каква е разделителната способност на екрана, дали екранът може да променя ориентацията, каква операционна система работи и т.н., които са всички подходящи функции, които могат да бъдат открити.   -  person jfriend00    schedule 03.08.2015
comment
За настолен компютър и таблет дори window.orientation връща false и window.devicePixelRatio=1 и за двата. Събитията с показалец се поддържат и от двете.   -  person sridhar..    schedule 03.08.2015


Отговори (3)


За разлика от Windows 8/8.1 има само един браузър Microsoft Edge, а не „потапящ“ браузър, удобен за докосване и обикновено приложение win32 за настолен компютър. Като такъв не можете да откриете разликата с UA низа, тъй като няма разлика.

Въпреки това, ако вашият случай на употреба е да предоставите удобно за докосване оформление за сензорни устройства (таблети и кабриолети, 2-в-1 и т.н.) и по-компактно оформление за потребители само с мишка и клавиатура, можете да използвате откриване на функции в CSS за това .

За целта можете да използвате медийните функции за взаимодействие на CSS Media Queries.

Ако искате да откриете, че има сензорен екран:

@media (pointer: coarse) { 
    ...styles for touch screen...
}

Ако искате да откриете, че потребителят не може да задържи курсора (често срещан проблем при сензорни екрани):

@media (hover: none) {
   ... styles ...
}

Важно е обаче да се отбележи, че това отчита основното посочващо устройство. В машини като кабриолети, където може да има тракпад/мишка и сензорен екран, той може да докладва стойностите за сензорен екран.

Вижте спецификацията за подробности.

person David Storey    schedule 14.08.2015

Тестването на user-agent за Touch не работи за вас?

person Borsunho    schedule 03.08.2015
comment
потребителският агент е еднакъв и за двете. Потребителският агент на таблета не съдържа докосване в int - person sridhar..; 03.08.2015
comment
Това вероятно трябва да е коментар. - person jfriend00; 03.08.2015

Открих, че можете да използвате JavaScript, за да откриете дали сте в режим Tablet (въпреки че кодът вероятно трябва да се изпълнява само ако Edge е в потребителския агент, а Windows Phone не е в потребителския агент?) - вижте https://stackoverflow.com/a/32601200/436776

Това работи в Edge, но не работи в IE11.

Подобна техника работи за надеждно откриване на Metro/Modern на Windows 8/8.1.

person robocat    schedule 16.09.2015