js проверка установлено ли приложение

Обнаруживать, если Android-приложение установлено на устройстве с помощью мобильной веб-страницы – PHP и JS

У меня есть требование, подобное этому, и что-то похожее на это было реализовано приложением Android Pit app-store.

Мне нужно проверить, установлено ли приложение Android на устройстве с помощью мобильной веб-страницы (PHP и JS), и если приложение установлено немедленно.

Это промежуточные страницы, используемые ядром Android.

Когда приложение не установлено – http://www.androidpit.com/en/android/market/app-center-mobile?pname=com.ocito.laredoute

Когда приложение уже установлено – http://www.androidpit.com/ru/qrdl/com.mobage.ww.a692.Bahamut_Android

Кто-нибудь знает, как это реализовать. Пожалуйста помоги

К счастью, это невозможно, по очевидным причинам конфиденциальности.

Самое близкое, что вы можете сделать, – это приложение, у которого есть действие с для некоторой структуры URL-адреса и есть ссылка на мобильном веб-сайте на соответствующий URL-адрес.

Если пользователь нажимает на ссылку и приложение установлено, это будет выбор для пользователя.

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

Есть способ достичь этого. Нашел этот ответ

Вы не можете определить, установлено ли какое-либо конкретное приложение по соображениям безопасности и конфиденциальности. Но вы можете сделать трюк, чтобы открыть приложение, если оно установлено или открыть страницу Google Play, если это не так.

Чтобы сделать это, вы должны создать фильтр намерений в основной деятельности вашего приложения, чтобы открыть его, когда вызывается данный URL. Как это:

Источник

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

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

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

Есть также код, который например откроет еще и страницу в браузере по истечению некоторого времени.

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

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

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

Источник

Определите, установлено ли приложение Android на устройстве с помощью мобильной веб-страницы-PHP и JS

У меня есть такое требование и что-то похожее на то, что было реализовано Android Pit app-store.

Мне нужно проверить, установлено ли приложение Android на устройстве с помощью мобильной веб-страницы (PHP и JS), и если установлено, немедленно запустите приложение.

это промежуточные страницы, используемые Android pit.

кто-нибудь знает, как реализовать это?

2 ответов

к счастью, это невозможно, по понятным причинам конфиденциальности.

самое близкое, что вы можете сделать, это в приложении, есть действие, которое имеет для некоторой структуры URL и имеют ссылку на мобильном веб-сайте на соответствующий URL-адрес.

если пользователь щелкает ссылку и приложение установлено, действие будет выбором для пользователя.

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

есть способ достичь этого. Найдено этой ответ

вы не можете определить, установлено ли конкретное приложение по соображениям безопасности и конфиденциальности. Но вы можете сделать трюк, чтобы открыть приложение, если оно установлено, или открыть его страницу в Google Play, если это не так.

для этого необходимо создать фильтр намерений для основного действия приложения, чтобы открыть его при вызове заданного URL-адреса. Вот так:

Источник

Определите, установлено ли мое настраиваемое приложение на устройстве мобильным браузером [duplicate]

Angular1

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

Angular2 and Later

Вы можете использовать это таким образом,

Кроме того, здесь представлены обещания spec определите здесь.

5 ответов

Вы имеете в виду, что JavaScript работает в браузере? Я думаю (надеюсь), что это невозможно. Я бы не хотел, чтобы какой-либо случайный веб-сайт мог видеть, какие приложения установлены.

Если вы хотите, чтобы пользователь установил конкретное приложение, вы можете указать ссылку на Market на своем веб-сайте: http : //developer.android.com/guide/publishing/publishing.html#marketintent

Я нашел более полезное решение. Ниже представлен файл конфигурации Android:

Ниже приведен код html:

Таким образом, когда пользователь нажимает на тег, и если устройство имеет приложение установлено, то он не будет отображать диалог, позволяющий пользователю выбирать, но вместо этого открывать приложение напрямую; и если приложение не было установлено, тогда будет вызвана функция js «test2», поэтому мы знаем, что приложение не установлено, поэтому мы можем делать что-либо в «test2»! Преимущество в том, что нам не нужно использовать стандартную схему html, которая отображает диалог выбора, и если я сам использую определенную схему, страница не будет переходить на неправильную страницу! Я китайский, мой английский нехорошо, надеюсь, что все поймут меня, а другие узнают о резолюции.

Это может быть доступно в ближайшее время публично.

Команда Chrome говорит:

В Chrome 59 мы представляем новый API под названием getInstalledRelatedApps (). Этот новый API позволяет определить, установлено ли ваше родное приложение на устройстве. ( https://developers.google.com/web/updates/2017/04/getinstalledrelatedapps )

Вы можете использовать Android Intents. Вы можете создать якорь намерения для запуска приложения. Если приложение не установлено, браузер ищет имя пакета, указанное в якоре намерений. Мы также можем предоставить URL-адрес Fall Back.

Это не поддерживается во всех браузерах. Chrome и несколько других основных браузеров поддерживают его. Проверьте эту ссылку для более подробной информации.

Я знаю, что это поздно, подумал, что это может помочь кому-то.

Существует способ достижения этого.

Вы не можете определить, установлено ли какое-либо конкретное приложение по соображениям безопасности и конфиденциальности. Но вы можете сделать трюк, чтобы открыть приложение, если оно установлено или открыть страницу Google Play, если это не так.

Чтобы сделать это, вы должны создать фильтр намерений для основного действия вашего приложения, чтобы откройте его, когда вызывается данный URL. Например:

Источник

URL Scheme: Проверка наличия установленного приложения в Javascript

Недавно столкнулся с необходимостью определить, зарегистрирована ли URL Scheme в браузере, чтобы в зависимости от результата показывать либо кнопку загрузки приложения, либо прямой URL на его запуск.

Оказалось, что каких-либо стандартных механизмов для этого не существует. Но поскольку пользователи никак не хотели обращать внимания на кнопку Download и красную надпись о необходимости предварительной установки приложения, пришлось искать варианты. Об этом и пойдет речь ниже.

Сразу хочу предупредить, что не оказалось ни одного способа, сработавшего хотя бы в двух браузерах стабильно одинаково. Поэтому любителей красивых кроссбраузерных решений ждет разочарование — статья полна хаков (просьба не минусовать за это, самому тошно, но задача есть задача).

Для начала создадим наши ссылки.

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

Начнем с Firefox и Opera, поскольку они в этом вопросе предоставляют 100% надежный и красивый механизм исключений. Но, к сожалению, реализация все равно отличается.

У Firefox самое простое решение.

Opera не намного отличается от Firefox, за исключением того, что она отлавливает исключение не в момент попытки загрузки во фрейм URL с незарегистрированным протоколом, а в момент попытки обращения к не определенному атрибуту фрейма (contentWindow.location).

Функции createFrame() и deleteFrame() для Firefox и Opera:

Safari под Windows тоже умеет ловить исключения, но со скрытым фреймом этот номер не прошел. Как вариант, можно использовать обычное окно. Решение не элегантное, но рабочее.

Safari под MacOS с исключениями, видимо, не дружит. Поэтому тут придется применить чисто костыльный метод. Фишка заключается в том, чтобы после запуска приложения проверить фокус нашего окна браузера. Если приложение успешно запустилось, то окно потеряло фокус, и в обработчике этого события мы зафиксировали этот факт. Если же приложение не открылось, то окно по-прежнему имеет фокус.

К сожалению, этот способ не на 100% стабилен. Например, если за время таймаута браузер не успел открыть приложение, или наоборот — пользователь успел закрыть приложение до наступления таймаута, и окно опять получило фокус. В результате, такие варианты выливаются в следующую неприятную картину. Всплывает окно с предложением загрузки, а через секунду стартует приложение. Или наоборот — стартует приложение, пользователь его тут же закрывает, и появляется окно с предложением загрузки. Поэтому увеличение или уменьшение таймаута почти одинаково плохо (увеличение все-таки немного лучше, т.к. в большинстве случаев пользователь не станет мгновенно закрывать только что открытое приложение). На практике наиболее приемлемым получился таймаут в одну секунду.

Chrome оказался полностью совместимым с Safari под MacOS, за исключением таймаута (Safari потребовалась почти секунда, чтобы запустить приложение, в то время, как Chrome запустил его меньше, чем за 250 миллисекунд).

(На практике способ с таймаутом очень сильно зависит от загруженности компьютера в момент запуска приложения. Я попадал на ситуации с Chrome и Safari, когда приложение не успевало запуститься, и выводилось окно с предложением о загрузке, после чего запускалось приложение. Опять-таки проблема с таймаутом, описанная выше).

Ну и наконец Internet Explorer не показал стабильного результата при всех стараниях. Для IE технически подходит вариант Safari под Windows (с открытием маленького окна). Но получить хотя бы 50% стабильность так и не удалось. Поэтому IE ушел в ветку «другие браузеры», которая не делает никаких проверок, а просто отображает обе ссылки — на запуск и на загрузку приложения. (Буду признателен, если кто-то подскажет способ для IE).

Теперь нам осталось только проинициализировать наши ссылки.

Примечание: Решение тестировалось в последних версиях Chrome, Firefox, Opera, Safari и IE на платформах Windows и MacOS. В мобильных браузерах тесты не проводились, но вариант с таймаутом вполне может оказаться работоспособным на Android и iOS.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • js обработка отправки формы
  • js добавить input в форму