Откройте приложение для Android через глубокую ссылку, если она установлена ​​или возвращается в Интернет, если не установлена

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

Приложение уже находится в производстве и правильно обрабатывает глубокие ссылки, example://content?id=42 . Формат ссылки не может быть изменен.

Что я уже пробовал

1) Перенаправление и таймаут:

 window.location.replace('example://content?id=42'); setTimeout(function() { window.location.replace = 'http://example.com/content?id=42'; }, 500); 

Прекрасно работает для iOS, но для Android он перенаправляет на example:// немедленно и, таким образом, дает мне ERR_UNKNOWN_URL_SCHEME . Кажется, не нужно идти на Android.

2) подход iframe . Невозможно использовать версии Rencent Chrome . Также не работает в браузере Samsung.

3) S.browser_fallback_url с S.browser_fallback_url . Работает хорошо, но только в Chrome. Не работает в браузере Opera и Samsung … скорее всего, нигде, кроме Chrome 25+.

Solutions Collecting From Web of "Откройте приложение для Android через глубокую ссылку, если она установлена ​​или возвращается в Интернет, если не установлена"

Используйте http://example.com/content?id=42 в качестве ссылки и добавьте фильтр намерений в свою активность в манифесте

 <intent-filter> <data android:scheme="http" android:host="example.com" /> ... </intent-filter> 

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

Вам необходимо знать браузер клиента, его операционную систему и адаптировать свой сайт к ним. Например, если браузер Chrome, а ОС – Android, используйте решение Intent; Если браузер Safari использует пример: // schema. Вы можете получить информацию, просматривающую заголовок User-Agent запроса, но я уверен, что существует множество библиотек с открытым исходным кодом, которые могут помочь вам получить информацию, связанную с браузером и ОС.

Вы можете попробовать использовать эту схему (для отправки пользователю):

Намерение: // Детали ID = X & Y URL = & реферер = Z # Намерение, схема = рынок, действие = android.intent.action.VIEW, пакет = com.android.vending; конец ";

X: имя пакета приложения

Y: Глубокая схема ссылок, которая должна быть определена в манифесте приложения. (См. Это ). Здесь они использовали этот URL как пример: « http://www.example.com/gizmos », поэтому Y должен быть заменен этим URL-адресом.

Z: Могут быть любые данные, которые вы хотите передать в приложение через Google Play. Обратите внимание, что любые данные, которые вы передаете, не должны быть «&» разделены, потому что исходные параметры сами «и» разделены.

PS: Google Play делает трансляцию в приложении. Поэтому убедитесь, что вы получили широковещательную передачу в приемнике.

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

  1. У вашей веб-страницы есть резервный URL-адрес.
  2. Когда страница нажата, проверьте агент пользователя, чтобы узнать, является ли os Android
  3. Если его Android, покажите пользователю подсказку / диалог выбора, чтобы использовать веб-интерфейс или Android
  4. Если они выбирают веб (помнят выбор с помощью локального хранилища), отмените диалог и покажите резервную копию
  5. Если они выберут android (вспомните выбор), перенаправляйте приложение с намерением: // URL (без fallback_url), выведут их на рынок, чтобы установить, если необходимо

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

Вам нужно установить условие веб-страницы в вашем проекте android projects.ex: если веб-страница в браузере – xxxxxx.com откройте приложение для Android. Это оно!