Мне было интересно, есть ли способ получить схему URL-адреса приложения-браузера с помощью javascript (на мобильном устройстве)?
Например: вы просматриваете веб-страницу на своем телефоне с помощью Google Chrome. Возможно ли, чтобы эта страница запускала некоторый javascript и извлекала схему googlechrome://?
Спасибо!
Редактировать:
Я только выяснил, что объект "навигатор" имеет метод "registerProtocolHandler", который позволяет веб-сайтам регистрироваться как возможные обработчики для определенных протоколов.
Это довольно близко к тому, что мне нужно. Единственная проблема заключается в том, что для этого требуется разрешение от лица, посещающего веб-сайт, что не дополняет поток, который я собираюсь сделать. Кроме того, он не поддерживает Safari на iOS..
Когда ваш JavaScript будет запущен на веб-странице, пользовательский телефон использовал схему URI (например, googlechrome://
), чтобы выбрать веб-браузер, который он установил. Затем браузер запрашивает ваш сайт с помощью веб-протокола, такого как http://
. Это то, что предоставит window.location.protocol
.
Таким образом, JavaScript не знает о "схемах" в смысле "приложений браузера".
Однако вы можете определить браузер пользователя из своего User Agent, а затем вывести из него возможную схему URI. Тем не менее, вы не можете быть уверены, что пользователь не только открыл Chrome и перешел на ваш сайт, не нажимая на ссылку.
Обратите внимание, что пользовательские агенты не всегда надежны:
пользователи браузера могут изменить значение этого поля, если они захотят (UA spoofing).