2015-05-20 2 views
2

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

+1

Релевантный ответ: [Отложенная глубокая привязка в iOS] (http://stackoverflow.com/questions/25855618/deferred-deep-linking-in-ios) – jfriend00

+0

Как вы получили существенный ответ ниже? – halfer

+0

Вместо этого мы используем буфер обмена. Работает как шарм: https://stackoverflow.com/a/44475847/1704120 –

ответ

2

Замечания к большому ответу, конечно. Высокий уровень, вот шаги:

  1. Ваши ссылки должны указывать на страницу на вашем сайте, который собирает цифровой отпечаток пальца
  2. Эта страница должна собрать, как минимум, IP-адрес, ОС, версии ОС и размер экрана (ширина и высота). Необходимо отправить на сервер и разместить его в постоянном хранилище. Redis отлично справляется с этим из-за его быстрого времени поиска. Также запишите какой-то уникальный идентификатор, для которого была нажата ссылка (это может быть значение в redis).
  3. Затем перенаправляйте приложение (схема URI) и возвращайтесь в магазин приложений/Play Store. Вот пример для iOS. Красота iframe заключается в том, что он убивает alertView, если приложение не установлено. Это должно быть помещено в тело:

    <script type="text/javascript"> 
         window.onload = function() { 
          // Deep link to your app goes here 
          document.getElementById("l").src = "my_app://"; 
    
          setTimeout(function() { 
           // Link to the App Store should go here -- only fires if deep link fails     
           window.location = "https://itunes.apple.com/us/app/my.app/id123456789?ls=1&mt=8"; 
          }, 500); 
         }; 
        </script> 
        <iframe id="l" width="1" height="1" style="visibility:hidden"></iframe> 
    
  4. Когда пользователь открывает приложение, отправить на ту же самую комбинацию Params для серверов и поиск постоянного хранилища, чтобы увидеть, если это устройство недавно нажал на ссылку. Отправляйте ответ на свое приложение (например, { link_id: "1234" } или { link_id: -1 }). Затем ваша логика приложения должна отвечать на основании того, какая ссылка была нажата.

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

Смежные вопросы