@dolcegabbana

Как Определить на js, установлено ли приложение в телефоне?

Вопрос больше именно про js, нежели про конкретно про задачу определения телеграма.

В обычном случае на веб странице размещается код, который в случае установленного приложения (в нашем случае Телеграм) отправляет пользователя сразу в приложение.

<script type="text/javascript">
		var url = "tg://resolve?domain=";
        setTimeout(function() {
            window.location = url;
        }, 100);
    </script>


Есть также код, который например откроет еще и страницу в браузере по истечению некоторого времени.
var now = new Date().valueOf();
setTimeout(function () {
    if (new Date().valueOf() - now > 200) return;
    window.location = "https://itunes.apple.com/";
}, 25);
window.location = "tg://resolve?domain=";


При этом, хотелось бы, чтобы работало строго что-то одно. То есть, либо открывается приложение, либо открывается страница (если приложение не установлено).

В связи с этим вопрос, можем ли мы как-то на js отслеживать следующие события:
- пользователь ушел со страницы, но не закрыл ее (какие-то ивенты, которые могут подсказать, что пользователь со страницей не взаимодействует никак). подразумеваем, что в этом случае пользователь открыл телеграм и он у него установлен
- есть это возможно, то замерять время, в течение которого пользователь не взаимодействовал со страницей (для случая, когда пользователь перешел в телеграм, и спустя какое то время, например несколько минут, вернулся снова в браузер на нашу страницу)

Ну то есть алгоритм, к примеру следующий:
если у пользователя телеграм установлен, то мы предполагаем, что вкладка с нашей страницей будет открыта, при этом действий никаких на странице совершаться не будет. причем какое то относительно длительное время, минимум секунд 20.
если телеграм не установлен, то пользователь либо закроет сразу страницу, либо будет с ней как то взаимодейтсвовать (скроллить, нажимать и т.п.)
  • Вопрос задан
  • 1216 просмотров
Пригласить эксперта
Ответы на вопрос 1
BBoyJuss
@BBoyJuss
WordPress, интерфейсы и все вытекающие
При этом, хотелось бы, чтобы работало строго что-то одно. То есть, либо открывается приложение, либо открывается страница (если приложение не установлено).

Оно так и работает. Из браузера нельзя узнать список установленных приложений.

Для отслеживания активна вкладка с сайтом, вам поможет Page Visibility API и Visibility.js
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы