Создать Deep Link для мобильного приложения

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

  1. Определяет, какая ОС (iOS или Android)
  2. Если приложение установлено на устройстве - открывает приложение
  3. Иначе - переводит пользователя в AppStore (или) PlayStore (или) по пользовательскому URL.

Я пытался использовать AppLinks (applinks.org) - но я не могу заставить его работать. Как браузер понимает теги "al:xx:xxx.."? Это работает только для Facebook/ Twitter?

<html>
    <head>
       <meta property="al:ios:url" content="applinks://docs" />
       <meta property="al:ios:app_store_id" content="12345" />
       <meta property="al:ios:app_name" content="App Links" />
       <meta property="al:android:url" content="applinks://docs" />
       <meta property="al:android:app_name" content="App Links" />
       <meta property="al:android:package" content="org.applinks" />
       <meta property="al:web:url" content="http://applinks.org/documentation" />
   </head>

Я также попробовал JavaScript из другого поста, но если приложение не установлено, браузер выдает ошибку:

<script>
    window.onload = function() {
        window.location = 'http://www.launchMyApp';

        setTimeout("window.location = 'http://play.google.com/someApp';", 1000);
    }
</script>

Пожалуйста, помогите с этим. Благодарю.

4 ответа

Теперь это возможно в iOS 9. В этом году на WWDC 2015 компания Apple объявила о расширенных ссылках Universal. Возможно, вы захотите посмотреть видео - " Бесшовная связь с вашим приложением".

Теперь он может:

  1. Проверьте, установлено ли приложение, и откройте содержимое в приложении iOS.
  2. Остальное не удается изящно и может открыть контент в сафари.

Одна из лучших функций iOS 9 после API поиска.

al:xx:xx:xx

То, что они дали вам, является URI (См. Этот пост SO для различий между URI, URNs и URL-адресами. Когда ваше приложение установлено, оно может зарегистрироваться для ответа на определенную URL-схему. Вот пример Spotify URI, который ссылается на песня.

spotify:track:0FutrWIUM5Mg3434asiwkp

Если на вашем устройстве установлен Spotify (включая рабочий стол), вы можете щелкнуть эту ссылку, и приложение Spotify должно автоматически открыться. Приложение отвечает, потому что оно зарегистрировало себя как ответчик на этот тип URL. Остальная часть URI используется приложением для выполнения определенных действий. В этом случае Spotify распознает URI как ссылку на песню с определенным идентификатором дорожки и открывает соответствующий экран.

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

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

http://www.myapp.org/?user=123&source=email. 

На вашей странице будет использоваться серверный Javascript, который будет пытаться открыть URL-схему, указанную вашим приложением - аналогично тому, что вы опубликовали выше. Если это не удается, он перенаправляет пользователя в соответствующий магазин приложений на основе информации браузера в заголовке агента пользователя HTTP. Вам может понадобиться другой Javascript для подавления предупреждений.

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

<html>
<head><title>App Link</title>
    <meta property="fb:app_id" content="XXXXXXXXXXXXXXX"/>
    <meta property="al:ios:url" content="example://test"/>
    <meta property="al:ios:app_name" content="Example App"/>
    <meta property="al:ios:app_store_id" content="XXXXXXXXX"/>
    <meta property="al:android:package" content="com.example.client"/>
    <meta property="al:android:app_name" content="Example App"/>
    <meta property="al:android:url" content="example://test"/>
    <meta property="al:web:should_fallback" content="false"/>
    <meta http-equiv="refresh" content="0;url=http://play.google.com/store/apps/details?id=com.example.client"/>
</head>
<body>Redirecting...</body>
</html>

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

Возможно, вы захотите попробовать Yozio - они сделают все, что вы просите, и немного больше. Я не аффилирован, просто коротко поиграл с этим.

Другие вопросы по тегам