Подтвердить что ты не робот

Универсальные ссылки на iOS и глубокие ссылки (схемы URL)

Как я читаю, iOS 9 представила Universal Links. В разделе "Поддержка универсальных ссылок" в Apple Руководство по программированию приложений, это говорит о том, что это не совсем так, как глубокая привязка к схемам URL, но я "Не совсем понятно об этой теме:

  • На самом деле разница между Universal Link и URL-схемами? Разве универсальная ссылка предназначена только для гиперссылок на веб-сайтах, а также для приложений Mail или Messages?
  • Универсальные ссылки заменяют схемы URL?
  • Являются ли универсальные ссылки типом глубокой ссылки?
4b9b3361

Ответ 1

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

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

Скажем, у вас есть приложение под названием "Cool App", и вы указали схему URL-адресов "Coolapp". И ваше приложение имеет разные области, такие как "Nice gadgets" и "Nice stuff". Теперь вы можете открыть свое приложение со ссылкой coolapp://nice-gadgets. Чтобы открыть приложение в разделе nice gadget, вы должны реализовать метод application(_:openURL:options:), и в нем обнаружите запрошенный URL-адрес и сделайте приложение открытым запрошенным просмотра.

В то же время у вас есть сайт под названием www.coolapp.com. При просмотре с помощью устройства iOS, и вы сталкиваетесь с ссылкой на ваш сайт - скажем www.coolapp.com/nice-gadgets и открывая ссылку, она откроется в браузере. Включив универсальные ссылки, он откроет приложение вместо этого, вызвав метод application(_:continueUserActivity:restorationHandler:) с учетом URL-адреса в качестве параметра. Отсюда вы можете использовать ту же логику из обработки схемы URL-адресов, чтобы открыть приложение в запрошенном состоянии.

Так будут ли универсальные ссылки заменять схемы URL? Я сомневаюсь в этом, но они будут комплименты друг другу красивым способом.

Являются ли универсальные ссылки глубокими ссылками? Нет, но они могут инициировать процесс использования глубоких ссылок в приложении.

Ответ 2

TL, DR:

На самом деле разница между Universal Link и URL-схемами? Разве универсальная ссылка предназначена только для гиперссылок на веб-сайтах, а также для приложений Mail или Messages?

Универсальная ссылка - это ориентированный на Apple, ориентированный на ОС URL, который связывает URL-адрес веб-сайта с конкретной схемой и маршрутом URI для приложения. Он недоступен во всех приложениях, поскольку приложение должно поддерживать поведение. Существует хороший список того, где/как работает UL (здесь).

Есть много проблем с UL, которые я описываю в самом конце. См. Долго читать ниже.

Устанавливают ли универсальные ссылки схемы URL-адресов?

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

Являются ли универсальные ссылки типом глубокой ссылки?

Да и нет. Универсальные ссылки сами по себе не являются универсальными деадаптерами - они не могут пройти через процесс установки, например. Но когда у пользователя есть приложение, они могут отключиться. Лучше подумать обо всех ссылках с точки зрения того, что они могут и чего не могут сделать, вместо того, чтобы классифицировать URL-адреса на "deeplinks" и "not deeplinks".

Во многих ссылках проявляется поведение, которое может повлиять на то, имеет ли пользователь приложение и контекст (браузер, приложение, ОС, версия ОС и т.д.). Измените структуру мышления.

Отслеживание универсальных ссылок

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

Поскольку UL не является нормальной ссылкой, если у вас есть переадресация, это нарушит его. Аналогично, если вы отключите переадресацию, то любой веб-сайт, на котором вы нажмете сервер, никогда не пострадает. Это для другого обсуждения, но важно отметить.

Много полезной информации, которую я куратор ниже по Universal Links, если вам интересно.

URI-схемы

Большинство людей знакомы с схемами URI. URI - это универсальный индикатор ресурса (link). URI могут быть выделены для мобильных приложений. Ввод в URI, например airbnb://будет пытаться найти ресурс приложения Airbnb на устройстве.

До того, как существовали универсальные ссылки или ссылки на приложения (то есть до iOS 9.3/Android 6.0), нужно было бы использовать "настраиваемую схему URI" и маршрут в форме airbnb://d/listing/530250, чтобы глубоко привязать пользователя к конкретному контента в мобильном приложении (в данном случае листинг). Однако это было небезопасно и не справлялось с тем случаем, когда у пользователя не было установленного приложения (спада не было). То, как большинство партнеров по атрибуции (Appsflyer, Kochava, Button, Yozio, Branch и т.д.) Будет работать, это то, что они предоставят ссылку, которая обрабатывала это.

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

window.location.href(...)

Если приложение не открылось до истечения срока действия таймера, поставщик мог предположить, что на телефоне не было этого приложения, поэтому вместо этого некоторые javascript могли бы открыть вместо iTunes или Android-URL. Этот механизм полагался на блокировку javascript в браузере.

В iOS 9.3 Apple удалила блокировку javascript в Safari (link). Конечным результатом является то, что всякий раз, когда вы пытались открыть приложение с помощью схемы URI в Safari, вы увидите сообщение с большой ошибкой, в котором говорилось: "Не удается открыть страницу". Это был ужасный пользовательский опыт и привело к внедрению новой системы Apple, Apple Universal Links.

Safari

Apple Universal Links и приложения для Android - это, по сути, веб-URL (например, https://www.airbnb.com/rooms/530250), которые предназначены для направления пользователей в оптимальное место в Интернете или приложении. Они предназначались для перехода пользователей на мобильный веб-сайт, если у пользователя нет приложения, но если они это сделают, заведите пользователя в точный контент в приложении. На мобильном устройстве, если пользователь следует универсальной ссылке и установил наше приложение, они могут быть направлены в приложение, иначе система отступит и выведет посетителя на наш мобильный сайт (за некоторыми исключениями - см. Ниже).

Чтобы ссылка была действительно универсальной, требуется, чтобы связанная функция была включена в Интернете, iOS и Android, а для всех приложений - один и тот же путь к ресурсам.

Apple Universal Links и приложения для Android

Apple Universal Links (iOS) и Android-приложения (Android) по сути являются одной и той же концепцией, но часто меняются или смешиваются с другими механизмами маршрутизации. Его важно быть явным, когда вы говорите об этих концепциях, иначе вы рискуете запутать или запутать разные технологии, которые работают по-разному.

В частности, Apple Universal Links является стандартом от Apple, который развертывается в операционной системе iPhone (ОС), что позволяет пользователю использовать ссылку и сразу же доставляться в приложение, если оно есть. У Apple Universal Links нет перенаправлений. Это специальная система с некоторой технической сложностью. Когда пользователь удаляет ссылку, вызов Apple обращается к Apple, и ОС немедленно открывает приложение, не открывая браузер или не загружая URL. Подробнее о том, как это работает ниже.

Android App Links - это эквивалентная система ссылок, которая настроена на Android.

Универсальные ссылки начинаются с размещения "файла ассоциации Apple App Site" (AASA) для каждого из ваших доменов.

Важно отметить, что почти каждая компания AASA размещается в своем основном домене, за которым следует ассоциация "/apple-app-site-association"

Некоторые примеры:

https://www.jet.com/apple-app-site-association https://www.pinterest.com/apple-app-site-association

Если вы нажмете эти URL-адреса, он загрузит компанию AASA. Пример AASA находится справа. Некоторые заметные вещи, включенные в AASA: AppID для всех приложений, где могут применяться Universal Links. В наших и многих других AASAs вы увидите установку для тестовых версий приложения, чтобы ссылки работали во всех версиях для тестирования. AppID структурирован как префикс приложения, за которым следует идентификатор Bundle. Обычно каждая тестовая версия приложения имеет другой префикс, но идентификатор Bundle остается неизменным.

Пример...   {Префикс приложения}. {Bundle ID}

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

Большинство поставщиков атрибуции, таких как Branch или Appsflyer, также могут разместить AASA для вас в некоторых случаях (например: Ветви AASA для Airbnb размещаются в пользовательском домене <а6 > ).

Эти файлы эффективно белым и черным списком URL-адресов для сопоставления или не отображения в приложении. Как и в случае с AASA, принадлежащей компании, для каждого домена поставщик указывает идентификаторы приложений и пути URL, такие как:

5LL7P8E8RA.com.airbnb.app
"/rooms/*"
"/wishlists/*"
"/invite"
"NOT /rooms/*/building-rules"

Когда пользователи устанавливают или обновляют наше приложение, iOS извлекает файлы AASA для всех доменов, перечисленных в наших приложениях, чтобы убедиться, что наши веб-сайты позволяют нашему приложению открывать URL-адреса от их имени.

Известные проблемы с универсальными ссылками

Универсальные ссылки отлично работают в большинстве случаев, однако их можно легко и непреднамеренно отключить! Если это произойдет, пользователь всегда будет перенаправлен на URL-адрес веб-сайта, пока не обновит свое приложение или reset, что мы называем их "Файл прав доступа" (link).

Если пользователь нажимает на ссылку "airbnb.com" или "abnb.me" в правом верхнем углу нашего приложения, ОС будет направлять пользователя на веб-сайт, но он также будет постоянно называть любую будущую универсальную ссылку на мобильный сайт для связи с этим доменом!

Это эффективно нарушает функциональность Apple Universal Links для пользователя. Это невозможно отследить прямо сейчас, и единственный способ reset - долго нажать URL и нажать "Открыть в" Airbnb "(не интуитивно) или нажать кнопку" Открыть "на баннере Apple Universal Links (Phantom Banner), который был описан ранее в этом документе.

Apple Universal Links Banner

Эти пути AASA также используются для определения того, когда показывать или не отображать iOS-системы "Universal Links Banner".

Это особенно горячая тема, которая часто возникает в разговорах и стоит обсудить.

Когда вы включаете Apple Universal Links в определенном домене, Apple будет внедрять системный баннер приложений в Safari Browser. Это означает, что помимо каких-либо баннеров или веб-межстраничных объявлений, которые мы показываем, Apple также заставит не настраиваемый, непревзойденный баннер Universal Links, который отображается в верхней части Safari для пользователей, у которых есть приложение, и просматривает URL-адрес в Safari какой путь находится в AASA.

Apple вводит

Мы не можем контролировать, как выглядит этот баннер. Мы можем только определить, должно ли оно быть видимым на странице, основанной на AASA. В настоящее время мы также не можем определить, когда или когда пользователь нажимает кнопку "ОТКРЫТЬ" (IE не присваивает атрибут.

Резюме атрибутов баннера Apple Universal Links:

  • ТОЛЬКО отображается, если пользователь имеет приложение.
  • НЕ то же самое, что и Apple Smart App Banner
  • ТОЛЬКО отображается в браузере Safari iOS.
  • Не настраивается, но вы можете настроить текст заголовка и описания на этом баннере с помощью содержимого iTunesMetadata.plist(link).
  • Нет атрибуции или отслеживания.

Ответ 3

Универсальные ссылки заменяют схемы URL/URI?

В Apple Ideal World, ДА !


Универсальные ссылки - это тип глубоких ссылок?

Потому что Apple вынуждает пользователей Universal Universal Links для глубокой ссылки. Таким образом, Universal Links - это тип глубокой привязки Apple. Но если вы видите, что в формате SDK для Facebook был реализован собственный WebView, чтобы поддерживать глубокую привязку в iOS 9.0+. Таким образом, для Apple Universal Links лучше, чем глубокая привязка.

Ответ 4

Это образец Universal Link: " http://sample-universal-link.demoapp.com"

Это уникальный, и при прослушивании он будет либо откройте приложение, не пройдя через Safari (если приложение установлено) или откроет веб-сайт в Safari (если приложение не установлено)

Это пример схемы URL: "demoapp" (demoapp://params)

Этот может быть не уникальным, а при использовании он откроет приложение, если оно установлено. Если приложение не установлено, ничего не сделает. Одно или несколько приложений могут иметь одну и ту же схему URL.

Реализация (требования) для Universal Link и URL Scheme совершенно разные, поэтому я очень сомневаюсь, что универсальные ссылки заменяют схему URL.

Universal Link - один из способов реализации глубокой привязки.