iOS Deep Linking - Общие проблемы и их лучшая попытка решить их

  1. Основная реализация
  2. проблемы
  3. Постоянно добавляя более глубокие ссылки
  4. Решение
  5. Резюме
  6. риски
  7. преимущества
фото Джаз Кинг на Unsplash

Кроме того, мы можем вернуть пользователей в наше приложение с мобильного сайта с помощью баннеров Smart App в браузере Safari. Ниже приведены два примера из реальной жизни. В следующих нескольких разделах мы покажем вам, что следует учитывать при реализации такой функциональности на iOS.

Основная реализация

Для поддержки глубоких ссылок в iOS лучшим подходом является использование универсальные ссылки , Универсальная ссылка - это уникальная ссылка, которая работает как для вашего (мобильного) сайта, так и для вашего приложения iOS. [1] Следовательно, чтобы использовать универсальные ссылки, мы должны обеспечить поддержку для обеих сторон. Допустим, мы хотим добавить поддержку глубокой ссылки на нашу страницу вставки рекламы, как показано ниже. Слева мы видим страницу так, как она выглядит в нашем приложении, а справа соответствующий мобильный сайт.

Мобильная ссылка - https://mobile.willhaben.at/anzeigenaufgabe, и мы определяем это как нашу универсальную ссылку. Чтобы заставить эту глубокую ссылку работать для приложения willhaben, мы сначала должны связать наши домены с приложением в Xcode.

Во-вторых, для всех связанных доменов мы должны предоставить файл JSON на стороне сервера , который может выглядеть следующим образом:

{"applinks": {"apps": [], "details": [{"appID": "ABCD1234.at.willhaben.mobileapp", "paths": ["/ anzeigenaufgabe"]}]}}}

Это так называемый Яблочно-приложение-сайт-ассоциация Этот файл предоставляет Apple сведения о том, какие приложения мы хотим связать с какими путями в качестве универсальных ссылок. Важно отметить, что этот файл не может быть размещен просто где угодно. Поскольку указанные пути должны быть относительными, им нужен базовый домен, и именно здесь вы должны поместить файл ассоциации. Таблица ниже иллюстрирует это для нашего примера.

https://mobile.willhaben.at/apple-app-site-association Файл ассоциации https://mobile.willhaben.at/anzeigenaufgabe Deep Link

Когда пользователь нажимает на push-уведомление или ссылку в электронном письме, iOS отправляет ссылку в наше приложение. Чтобы знать, что с этим делать, наше приложение должно явно обрабатывать глубокую ссылку. Мы не будем вдаваться в подробности о том, как это делается сейчас, поскольку это выходит за рамки этого текста [2], но в основном приложение должно анализировать глубокую ссылку и, в зависимости от пути, решать, какую страницу открыть. Обычно глубокая ссылка предоставляет всю информацию, необходимую для открытия нужной страницы. [3]
Все идет нормально. Если мы хотим добавить поддержку более глубоких ссылок, нам просто нужно добавить их в массив путей. В следующих разделах мы увидим, почему не всегда так просто добавить поддержку для глубокой ссылки в целом, и почему это требует больше усилий, чем «просто» добавление еще одной записи в пути.

проблемы

Ссылки не-SEO

В предыдущем разделе мы упоминали, что самый простой способ добавить поддержку глубоких ссылок - это использовать универсальные ссылки. Один из лучших способов определения ваших универсальных ссылок - это использование SEO ссылки , К сожалению, на практике у вас не всегда может быть SEO-ссылка, удобная для всех типов страниц, на которые вы хотите перейти на глубокую ссылку. В целом, мы обнаружили, что чем динамичнее становится ваш веб-сайт, тем сложнее найти общий шаблон, который будет однозначно идентифицировать страницу, что является требованием для глубокой ссылки.
Чтобы обойти проблему отсутствия SEO-ссылки для каждой желаемой страницы, мы добавили «подстановочный путь», такой как / dl / *, в наш файл ассоциации.

"paths": ["/ dl / *", "/ anzeigenaufgabe"]

Это позволяет нам использовать ссылки в виде https://mobile.willhaben.at/dl/my-non-seo-link-page в качестве глубоких ссылок. Хотя это кажется довольно очевидным на первый взгляд, это открывает еще одну проблему. Поскольку мы, скорее всего, хотим использовать глубокую ссылку, чтобы связать людей в наше приложение, [5] сама ссылка также должна работать [6], когда, например, она открывается в электронном письме на устройстве iOS, на котором не установлено наше приложение или даже на любом другом мобильном устройстве или компьютере, на котором невозможно запустить приложение.

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

Постоянно добавляя более глубокие ссылки

Вызов

Подумайте о следующем сценарии. Вы выпустили свое приложение с поддержкой определенной ссылки, и в следующей версии вы хотите добавить поддержку еще одной. [7] Или, вообще говоря, вы хотите добавить новую функцию.
В современной разработке программного обеспечения добавление новых функций обычно имеет отдельный рабочий процесс, и здесь, в willhaben, это не исключение. В целом, можно сказать, что каждая функция проходит от разработки (dev) до тестирования (prod). Чтобы удовлетворить эти требования, наши разработчики используют выделенную настройку среды API / приложения dev , и то же самое относится к нашей группе обеспечения качества (QA) для тестирования. Поэтому, как правило, когда мы разрабатываем функции, мы не используем «производственные URL», то есть любой непроизводственный URL имеет выделенный префикс или что-то подобное, что зависит от самой среды. См. Таблицу ниже для возможной настройки.

https://mobile-dev.willhaben.at/anzeigenaufgabe development https://mobile-uat.willhaben.at/anzeigenaufgabe пользовательский приемочный тест (QA) https://mobile.willhaben.at/anzeigenaufgabe production

Теперь мы хотим добавить поддержку для следующей ссылки на нашу страницу вставки автомобильной рекламы. https://mobile.willhaben.at/auto-verkaufen
Как упоминалось выше, каждая поддерживаемая глубокая ссылка должна быть частью массива paths - относительно сервера, на котором находится наш файл ассоциации. Теперь вы можете сразу увидеть проблему. Мы не можем определить нашу глубокую ссылку dev , поскольку наше приложение настроено так, чтобы указывать на файл ассоциации на сервере prod .

Решение

Одним из очевидных ответов было бы просто добавить файл ассоциации на наш сервер разработки и соответствующим образом настроить наше приложение, добавив соответствующий (суб) домен, см. выше , Затем мы могли бы использовать наши dev-ссылки в нашем dev-приложении, как мы обычно используем при разработке других функций. То же самое верно для QA и среды тестирования. Наконец, мы отправили новую версию приложения нашим пользователям. Есть несколько причин, по которым это может быть не самой лучшей идеей в этом случае, и мы рассмотрим ее ниже.

В целях безопасности, среди прочего, наши среды разработки и контроля качества не доступны для общественности. Однако Apple необходимо сканировать содержимое файла ассоциации на нашем сервере, чтобы связать наше приложение с нашим доменом. Поскольку сделать части этих сред общедоступными на самом деле не вариант, [8] нам нужно найти другое решение. Кроме того, и, на мой взгляд, решающий аргумент, с практической точки зрения, делает жизнь намного проще, если вы настроите свою цепочку разработки / тестирования для глубоких связей как можно ближе к производству. [9]

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

Кроме того, наше приложение должно решить, поддерживает ли оно глубокую ссылку, и, если нет, открыть системный браузер как запасной вариант. Хотя для ее решения не требуется ракетостроение, и это можно сделать так, чтобы оно зависело от окружающей среды, мы решили отказаться от него, чтобы устранить уровень сложности во всей теме глубоких / универсальных связей, поскольку он работа вообще есть достаточно сложный , Чтобы получить нашу ближайшую к работе настройку для разработки, мы используем наш обычный файл ассоциации и изменяем записи приложений, добавляя appID вместе с путями, такими как:

{"applinks": {"apps": [], "details": [{"appID": "ABCD1234.at.willhaben.mobileapp", "paths": ["/ anzeigenaufgabe"]}, {"appID": "DCBA4321.at.willhaben.mobileapp.dev", "paths": ["/ anzeigenaufgabe", "/ auto-verkaufen"]}]}}

Теперь наше приложение для разработчиков поддерживает нашу новую глубокую ссылку https://mobile.willhaben.at/auto-verkaufen, и мы можем добавить весь код для соответствующей обработки. Мы можем отправлять электронные письма, push-уведомления и рекламу в Facebook, содержащую ссылку, и мы видим, правильно ли работает наше приложение. Особенно на этапе разработки / тестирования, когда вы обычно работаете вместе с разными людьми из разных отделов, он устраняет источник ошибки, если существует одна глубокая ссылка на страницу, а не несколько. С технической точки зрения, это позволяет нам создавать выразительные модульные тесты, которые не должны возиться с подробностями о среде.

let url: URL! = URL (строка: «https://mobile.willhaben.at/auto-verkaufen») let deepLinkPage = sut.parseUrl (url) XCTAssert (deepLinkPage == .carAdInsertionProductSelection)

Еще одним большим преимуществом является то, что мы действительно можем увидеть, все ли играет вместе, как и ожидалось, попробовав Smart App Banner. Обратите внимание, что он предлагает открыть наше приложение для разработчиков .

Если щелкнуть эту ссылку на баннере или ссылку в сообщении электронной почты, push-уведомления и т. Д., Мы увидим, ведет ли наша ссылка на нужную страницу в приложении. Как только мы подтвердим, что он ведет себя так, как ожидалось, все, что нам нужно сделать, это добавить ссылку на пути к нашему производственному приложению и выпустить ее.

Резюме

уверенность

Хотя универсальные / глубокие ссылки кажутся простыми в теории, многие технологии должны играть вместе, чтобы заставить их работать правильно, и это легко испортить. Мы указали, что вы должны учитывать при разработке и тестировании, чтобы ограничить сложность. Кроме того, мы постарались убрать некоторые тонкости, которые могут пойти не так во время реализации. Это позволяет нам своевременно отлавливать ошибки, а не только тогда, когда мы уже выпустили приложение.

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

риски

Внимательный читатель заметит, что представленная установка также сопряжена с некоторыми рисками и проблемами. Поскольку нам нужно изменить файл ассоциации на нашем производственном сервере, мы можем испортить что-то там.

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

преимущества

Преимущества установки, близкой к производственной, перевешивают эти риски, и для нас лучше "сломать" нашу поддержку глубоких ссылок, чем иметь приложение, которое ведет себя некорректно. Это особенно верно, потому что на iOS обычно требуется по крайней мере несколько дней, чтобы выпустить обновление приложения, чтобы исправить любые проблемы. С помощью представленных лучших практик, используемых в willhaben, мы пытаемся предотвратить последнее, и хотя по этой теме можно говорить гораздо больше, мы надеемся, что мы вдохновили вас, когда вы все еще пытаетесь понять, как сделай это.

Рекомендации:

  1. В остальной части статьи термины глубокая ссылка и универсальная ссылка иногда используются взаимозаменяемо.
  2. Отличная вводная статья может быть найдена в Apple документы ,
  3. Ваша глубокая ссылка может содержать параметры запроса, например https://mobile.willhaben.at/my-deep-link?param1=x&param2=y. В лучшем случае вы можете напрямую запросить у вашего API этот URL, не манипулируя им и не создавая новый.
  4. Мы используем термин динамический в смысле пользовательского контента, поэтому ваш URL-путь и параметры могут зависеть от этого.
  5. Обратите внимание, что мы могли бы также использовать глубокие ссылки в приложении.
  6. В смысле «постарайся доставить ожидаемый контент пользователю».
  7. яблоко состояния что файл apple-app-site-association извлекается при установке приложения , однако в документации не говорится, как часто установленное приложение повторно загружает файл для обновления своих ассоциаций.
  8. Мы могли бы сделать наши среды разработки доступными для Apple, разрешив определенные диапазоны IP-адресов, но вместе с нашей операционной командой мы отказались от этого, поскольку не знали бы, правильно ли мы настроили его для всех необходимых диапазонов IP-адресов. Кроме того, это, вероятно, потребует постоянной адаптации.
  9. Это относится к любой функции в целом, но особенно к этой теме, поскольку разные технологии должны играть вместе.
  10. Обязательно утверждать ваш JSON и ваши универсальные ссылки перед развертыванием!

Похожие

Повторяющийся контент Wordpress - Решение проблемы SEO с Robots.txt
Дублированный контент во время оптимизации SEO является основной проблемой, с которой сталкиваются пользователи WordPress. Это может быть основной причиной потери вами ранга в Google, и все это из-за встроенных категорий и тегов страниц, встроенных в WordPress. Этот простой файл robots.txt поможет устранить эти ошибки. Но вы можете решить эту проблему, используя robots.txt.Что
Лучшая SEO компания в Уигане
Воспользуйтесь услугами лучшей SEO-компании в Уигане, чтобы обеспечить присутствие вашего бизнеса в Интернете. Веб-сайт, страница в Facebook, аккаунт в Instagram - все это хорошие признаки того, что вы идете правильным путем. Но чтобы пробиться сквозь шум и подняться над толпой, вам придется придерживаться
4 Ключевые преимущества найма SEO услуг
... более заметным на страницах результатов поисковой системы посредством процесса поисковой оптимизации. В ходе этого процесса на веб-сайт добавляются некоторые функции, совместимые с поисковой системой. SEO имеет решающее значение для развития электронная коммерция , Для владельцев бизнеса, возможно, не удастся сделать их веб-сайт оптимизированным для SEO из-за нехватки времени или отсутствия
Лучшая постоянная структура для WordPress SEO
... ссылки WordPress по умолчанию не годятся Ниже приведены некоторые советы, которые следует учитывать при определении структуры постоянных ссылок: Используйте описательные URL: слова, которые вы используете в своем URL, должны точно описывать содержание этой конкретной веб-страницы. Чем короче, тем лучше, чем нелепо длинная: чем меньше слов в вашем URL, тем лучше. Короткий URL-адрес быстрее набирать и гораздо легче
Как создать качественные обратные ссылки вручную бесплатно
... их SEO-гуру, предлагающих вам создавать обратные ссылки на ваш сайт. На этот раз я согласен с этими SEO гуру. Обратные ссылки играют очень важную роль в SEO, и неважно, сколько раз Google говорит, что это не придает им большего значения всем остальным факторам ранжирования. Некоторое время назад я поделился статьей о том, как можно использовать технику небоскреба основателя Backlinko Брайана Дина для создавать качественные
Распространенные ошибки SEO - ABAKUS SEO Guide
... проблемы: Google - результат поиска Ваш браузер ... Большинство из этих более чем 380 000 веб-сайтов требуют профессиональной оптимизации, тем более что их собственная оптимизация просто смешна. Немногие из этих страниц когда-либо будут найдены в топ-10 любой поисковой системы. Просто используйте фразу «ваш браузер не использует фреймы» в вашем наборе фреймов,
Получить обратные ссылки для вашего сайта, вот как это работает
Ссылки других сайтов на вашу домашнюю страницу являются одной из самых важных валют онлайн. Получить обратные ссылки для сайта и магазина Обратные ссылки указывают на достоверность и актуальность Google. Нелегко получить хорошие обратные ссылки. Вы можете принять некоторые меры самостоятельно, а некоторые практики не рекомендуется. Самый верный способ получить хорошие рекомендации - это специализированное агентство. Пояснение: В буквальном
Как настроить красивые постоянные ссылки в WordPress
... более удобным для SEO. Чтобы настроить постоянные ссылки на своем сайте WordPress, просто перейдите в « Настройки» »Постоянные ссылки . Там вы увидите несколько вариантов на выбор: Выбор структуры постоянной ссылки Большинство экспертов по WordPress SEO сходятся во мнении, что лучшая структура постоянных ссылок - это та, которая использует
Анализируйте ссылки на сайте с помощью Screaming Frog SEO Spider
... ссылки на веб-сайтах, он сканирует все ссылки на веб-сайте и дает обратную связь, такую ​​как 404, 301, 302, 307 ... Этот инструмент помогает анализировать и контролировать устаревшие веб-сайты до или после обновления или анализа SEO. Screaming Frog
Дешевый SEO - это то, что вы хотите?
... их отдаче от своих инвестиций. Если они платят 500 евро в месяц в течение 6 месяцев = 3000 евро - сколько еще они могут заработать в результате этих расходов. Эта разумная цена и хороший доход делают мою жизнь проще. Я работаю над проектами, где достаточно денег, чтобы делать то, что требуется, и хорошо платить. Этот последний бит очень важен. Если бы у меня был недорогой наряд, я бы имел дело как минимум с 100 клиентами в месяц по 100 евро. Там не будет времени,
Лучшая SEO компания Индия, Лучшее SEO агентство, Этическое SEO Сервис Индия
Знаете ли вы о SEO? Вы хотите занять место в топ поисковых систем, таких как Google? ДА, вы в нужном месте! В SEO AIM POINT У нас многолетний опыт в SEO, и мы занимаемся SEO, когда рейтинг в Yahoo был мечтой многих веб-сайтов. Поисковая оптимизация является важной

Комментарии

Какие их проблемы вы пытаетесь решить?
Какие их проблемы вы пытаетесь решить? Какие преимущества вы предоставляете? Продавайте решения проблем, продавайте измеримый возврат инвестиций, продавайте себя - не продавайте SEO. Позиционируйте себя в качестве агентства SEO, а не просто другого агентства SEO, борющегося за свой бизнес. 8. Создайте свое SEO предложение
Есть ли у вашего конкурента более полный и согласованный профиль местного цитирования, чем ваш бизнес?
Есть ли у вашего конкурента более полный и согласованный профиль местного цитирования, чем ваш бизнес? Google My Business: найдите своего конкурента в Google My Business и оцените силу его профиля. Есть ли у них отзывы? Проверен ли их аккаунт? В их профиле указана правильная основная бизнес-категория? Тенденции профиля ссылок: хотя это платный инструмент, ahrefs.com показывает лучший трекер
Но и после SEO (исследование ключевых слов, внутренние ссылки, внешние ссылки, Ranktracking), верно?
Но и после SEO (исследование ключевых слов, внутренние ссылки, внешние ссылки, Ranktracking), верно? Видите ли, элементы не являются взаимоисключающими, но прекрасно работают вместе. Я не хочу пропустить входящий маркетинг без SEO. вывод Внешне SEO и входящий маркетинг могут иметь существенные различия. Но у обоих есть одна общая черта: клиент! Если бы это был супермаркет, SEO бы позаботился о том, чтобы в магазин пришли правильные потенциальные
Чем они отличаются и каковы их преимущества и недостатки?
Чем они отличаются и каковы их преимущества и недостатки? SEO: поисковая оптимизация Что такое SEO? SEO (поисковая оптимизация) определяется набором действий и стратегий, направленных на повышение рейтинга и видимости сайта в естественных или естественных результатах поисковых
Какая часть их ссылок идет на их домашнюю страницу по сравнению с внутренними страницами?
Какая часть их ссылок идет на их домашнюю страницу по сравнению с внутренними страницами? Вместо создания ссылок на вашу домашнюю страницу, рассмотрите возможность создания ссылок на большинство ваших внутренних страниц. Достаточно взглянуть на сайт Википедии, который оценивает почти каждый термин и является 6-й по популярности сайт в мире , Величественный SEO показывает, что в Википедии
Будем ли мы вкладывать 20 или более часов в работу, пытаясь ее получить?
Будем ли мы вкладывать 20 или более часов в работу, пытаясь ее получить? Это довольно сомнительно. Это должно быть с очень хорошего сайта, чтобы оно того стоило. Дело в том, что SEO больше не просто создание ссылок. В 2017 году SEO является высокотехнологичным. Он работает над настройками кода, создает или пересматривает контент, создает контент в контексте, который ищут идеальные клиенты, и иногда он ищет возможности ссылок, которые стоят временных затрат. Если вы заинтересованы
2.0.1. но где вы можете найти более старую версию архива All in One SEO Pack?
2.0.1. но где вы можете найти более старую версию архива All in One SEO Pack? там не было никаких ссылок на страница плагинов WordPress или страница плагина разработчика ... есть место, где вы можете легко загрузить более старые версии, и в конце концов это сервер плагинов WordPress: тогда как текущую версию
Должны ли быть другие, более благоприятные активы?
Должны ли быть другие, более благоприятные активы? (Например, события, о которых вы говорили, ваши другие интервью, книги и т. Д.) Должны ли другие из них быть опубликованы? (Например, опубликуйте и рекламируйте это видео, где вы говорили!) оценивать визуальный поиск результаты этих триггеров (изображения и видео) . Могут ли они повредить это важное первое впечатление? Должен
Является ли описание / резюме хорошим, и достаточно ли длинным или коротким?
Является ли описание / резюме хорошим, и достаточно ли длинным или коротким? Является ли изображение точным и достаточно большим? Если это сообщение или страница содержит встроенное видео, отображается ли видео в общем ресурсе? Если это Продукт, включает ли его цена, цвет, размер и т. Д.? Правильно ли указана ссылка на сайт и / или автора? Эти и многие другие компоненты необходимо учитывать при выборе плагина Social Sharing Optimization (SSO).
Разве «Как приготовить суши» не будет лучшим, хотя и более скучным выбором?
Разве «Как приготовить суши» не будет лучшим, хотя и более скучным выбором? С настройкой заголовка страницы мы можем сделать это обоими способами. Мы можем сохранить броский заголовок для отображения на странице и одновременно использовать «Как приготовить суши» для результатов поиска. Для этого мы просто отредактируем поле заголовка страницы так, чтобы оно читало: Как приготовить суши & nbsp; | [ Название сайта ] Для этого нужно изменить & lt;
Но что, если вы хотите что-то быстрее или вам нужно скопировать более одного за раз?
Но что, если вы хотите что-то быстрее или вам нужно скопировать более одного за раз? Люди, которые занимаются вводом данных или обслуживанием базы данных, столкнутся с этим очень часто, и наличие нескольких хаков в вашем браузере сделает этот процесс намного проще. Не говоря уже о меньшем времени. Я основываю это на предположении, что большинство читателей имеют либо Firefox, либо Chrome.

At/my-deep-link?
Вы хотите занять место в топ поисковых систем, таких как Google?
Какие их проблемы вы пытаетесь решить?
Какие преимущества вы предоставляете?
Есть ли у вашего конкурента более полный и согласованный профиль местного цитирования, чем ваш бизнес?
Есть ли у них отзывы?
Проверен ли их аккаунт?
В их профиле указана правильная основная бизнес-категория?
Но и после SEO (исследование ключевых слов, внутренние ссылки, внешние ссылки, Ranktracking), верно?
Чем они отличаются и каковы их преимущества и недостатки?