Возможен ли технически deeplinking сегодня, с поддержкой Safari и Default Android Browser?

Клиент попросил разместить на сайте 3 иконки: вконтакте, facebook, twitter. Каждая иконка ведет на его страничку в социалках. Также он попросил открывать соответствующее приложение, если оно установлено у пользователя.

Я использовал этот сервис для генерации deeplinks, deep-link.js для обработки ссылок на странице (работает на основе задержки - если не открылся native app, открывает fallback url). У меня получилось вот что ($id - это username / id):
  1. twitter twitter://user?screen_name=$id
    IOS Safari (app installed): открывается приложение
    IOS Safari (app not installed): ругается, что адрес недействителен, открывается fallback url
    IOS Chrome (app installed): открывается приложение
    IOS Chrome (app not installed): открывается fallback url
    Android Default (app installed): открывается приложение
    Android Default (app not installed): страница twitter://... недоступна

  2. facebook ios: fb://profile/$id, android: fb://page/$id
    IOS Safari (app installed): открывается приложение
    IOS Safari (app not installed): ругается, что адрес недействителен, открывается fallback url
    IOS Chrome (app installed): открывается приложение
    IOS Chrome (app not installed): открывается fallback url
    Android Default (app installed): открывается приложение
    Android Default (app not installed): страница fb:// недоступна
    Android Chrome (app installed): открывается приложение
    Android Chrome (app not installed): открывается fallback url

  3. vk ios: vk://vk.com/$id, android: https://vk.com/$id
    IOS Safari (app installed): открывается приложение
    IOS Safari (app not installed): ругается, что адрес недействителен, открывается fallback url
    IOS Chrome (app installed): открывается приложение
    IOS Chrome (app not installed): открывается fallback url
    Android Default/Chrome (app installed): предлагается выбор, как открыть ссылку: приложение или браузер
    Android Default/Chrome (app not installed): открывается fallback url


Как можно обойти поведение стандартного браузера Android и Safari, чтобы он не плевался ошибками?

P.S. Также пробовал указывать App Links, не помогло:
<meta property="al:ios:url" content="fb://page/$id" />
<meta property="al:ios:app_store_id" content="284882215" />
<meta property="al:ios:app_name" content="Facebook" />

<meta property="al:android:url" content="fb://page/$id">
<meta property="al:android:package" content="com.facebook.katana">
<meta property="al:android:app_name" content="Facebook">
<meta property="al:web:url" content="https://www.facebook.com/page/$id" />

<meta property="og:title" content="example page title" />
<meta property="og:type" content="website" />


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

Насколько я понял, intent-filter может быть использован только в нативных приложениях, а не в веб-страницах, поэтому он тут тоже не подходит.

В итоге, если учесть что на ios почти все пользователи используют Safari (ибо для всех конкурентов яблоки отключают аппаратное ускорение), а на android - дефолтное непонятно что (в нечастых случаях хром), то этот deep linking ни у кого работать не будет.

Может быть кто-нибудь сможет показать какой-либо сайт, где deep linking действительно нормально работает? Ну посмотреть хоть что к чему....
  • Вопрос задан
  • 2606 просмотров
Пригласить эксперта
Ответы на вопрос 1
@CybernatiC
Веб-разработчик
Посмотрите сорс telegram.me/{USERNAME}
Там идет deeplinking с iframe
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы