AndroidGoogleПрямые ссылкиПрямые ссылки AndroidТехническая информация

Техническое руководство по прямым ссылкам в Android: Схемы URI

By Октябрь 30, 2017 No Comments

Это первая часть технического руководства по прямым ссылкам в Android. В дальнейших публикациях мы рассмотрим намерения в Chrome, ссылки приложений Android, и реферера Google Play.

Платформа Android отличается крайне высоким уровнем фрагментации, поскольку Google вынуждает разработчиков устройств самостоятельно заниматься переносом ОС, обеспечением обратной совместимости и поддерживать множество устройств. Вследствие этого часто применяются длинные инструкции if-else, чтобы убедиться в использовании наиболее оптимального метода в соответствующем контексте.

Android devices deep linking

С прямыми ссылками в Android ситуация точно такая же. С течением времени появлялось великое множество технических требований, которые необходимо соблюдать в зависимости от обстоятельств и пользовательского контекста. Решение Branch объединяет все эти реализации, это платформа ссылок, работающая во всех граничных случаях. Ссылки Branch дают возможность обойти сложности и использовать стандартное решение, поэтому вам не придется беспокоиться о совместимости. Мы настоятельно рекомендуем использовать наши решения, а не пытаться воссоздать аналогичную функциональность с нуля, поскольку мы предоставляем их бесплатно.

В этой серии публикаций описываются все разнообразные механизмы прямых ссылок, используемые нами, и поясняется их реализация.

Можно приступить к работе на сайте start.branch.io или нажать на кнопку ниже.

Схема URI в Android и фильтр намерений

В Android 1.0 был создан механизм прямых ссылок на основе схемы URI. С его помощью разработчик может зарегистрировать свое приложение с URI (универсальным кодом ресурса) в операционной системе для определенного устройства после установки приложения. В качестве URI можно использовать любую текстовую строку без специальных символов, например HTTP, pinterest, fb или myapp. Если после регистрации добавить «://» к концу URI (например, pinterest://) и щелкнуть эту ссылку, откроется приложение Pinterest. Если приложение Pinterest не установлено, появится ошибка «Страница не найдена».

Требования для использования схем URI в Android

  • Зарегистрируйте действие для отклика на URI с помощью фильтра намерений в манифесте.
  • Приложение должно быть установлено для использования. Если приложение не установлено, появится сообщение об ошибке.

Настройка схемы URI в Android

Настроить ваше приложение для схемы URI очень просто. Сначала нужно выбрать в приложении действие, которое должно выполняться вашим приложением при включении схемы URI, и зарегистрировать фильтр намерений для него. Добавьте следующий код в тег <activity /> в манифесте, соответствующий действию, которое нужно открыть.

Можно изменить your_uri_scheme на нужную схему URI. Схема в идеале должна быть уникальной. Если она совпадет со схемой URI другого приложения, то при переходе по ссылке пользователь увидит окно выбора Android. Вы часто видите это окно, если на вашем устройстве установлено несколько веб-браузеров, поскольку они все зарегистрированы для URI HTTP.

Обработка прямых ссылок в приложении Android

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

После этого потребуется применить разбор строки, чтобы прочесть значения, присоединенные схемой URI.

Использование схем URI в Android на практике

Метод обработки прямых ссылок с помощью URI сопряжен со значительными ограничениями. Мы не рекомендуем использовать его без существенных изменений, поскольку если на устройстве нет приложения, будет просто выводиться сообщение об ошибке. Для эффективного использования схемы URI нужно будет добавить дополнительные инструменты для обработки граничных случаев, например когда приложение не установлено.

Таким образом, чтобы обеспечить достаточное удобство пользователей в случае, если приложение не установлено, нужно заключить схему URI в код JavaScript на стороне клиента, который можно выполнить в браузере. Этот код JS будет размещен на вашем сервере, а ссылку вы будете отправлять пользователям. Ниже приведен пример.

Код попытается открыть приложение, задав источником iFrame схему URI, а затем безопасно вернется в магазин приложений Google Play, если приложение не удастся загрузить.

Заключение

Следите за дальнейшими публикациями, посвященными прямым ссылкам в Android.

Прямые ссылки в Android устроены очень сложно, граничные случаи попадаются на каждом шагу. Вам может казаться, что все великолепно работает, пока вдруг какой-нибудь пользователь не пожалуется, что у него не открываются ссылки из Facebook в Android 4.4.4. Именно поэтому стоит использовать программы, подобные Branch: вы сможете просто забыть все эти сложности как страшный сон и привыкнете к тому, что ссылки просто всегда работают.