Есть ли способ определить, использует ли пользователь Wi-Fi или сотовые данные с помощью javascript?

Я хочу, чтобы видео автоматически воспроизводилось на веб-сайте, только если пользователь подключен к Wi-Fi. Я знаю про navigator.connection api - но он недоступен в сафари, да к тому же говорит только о скорости соединения, а не о типе.


person spongebob    schedule 24.02.2018    source источник
comment
Аналогичный вопрос был задан здесь: stackoverflow.com/questions/25968020/ Надеюсь, это полезно!   -  person ShanaSkydancer    schedule 24.02.2018


Ответы (1)


По состоянию на декабрь 2020 года Safari не предпринял никаких шагов для внедрения API сетевой информации, который, как вы Как мы уже отмечали, предоставляет объект navigator.connection NetworkInformation. Это позор, потому что другие браузеры поставляли это годами.

Это означает, что в мобильном Safari (или настольном Safari, если уж на то пошло) нет эквивалента iOS-интерфейсов Reachability API, поэтому лучшее, что вы можете сделать, это предложить нам очень грубый хак, например:

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

Для полноты картины согласно MDN , по состоянию на декабрь 2020 г. браузеры, действующие, предоставляют navigator.connection:

  • Desktop:
    • Chrome 61+
    • Край 79+
    • Firefox, но только если пользователь включил настройку dom.netinfo.enabled
    • Опера
  • Mobile:
    • Android WebView 50+
    • Хром Android 38+
    • Firefox Android 14+ (то же предостережение, что и для рабочего стола)
    • Опера Андроид 37+
    • Самсунг Интернет 3+

(Safari и Internet Explorer — единственные крупные браузеры, в которых явно отсутствует поддержка.)

person s3cur3    schedule 21.12.2020