iOS 9 Универсальные ссылки Кнопка "Вперед" разрывает глубокие ссылки навсегда, пока я не сотру настройки телефона
Прежде чем кто-либо пометит этот вопрос как дубликат, ознакомьтесь с дополнительным разделом внизу, где указаны различия между этим вопросом и другими подобными вопросами.
Я использую Universal Links для своих глубоких ссылок. Два примера использования:
1.) Браузер Safari/Chrome на iPhone с установленным моим приложением. Когда я нажимаю на ссылку на моем веб-сайте на их iPhone, я глубоко привязываю их к своему приложению, если оно установлено на их телефоне.
2.) Когда мое приложение установлено, я запускаю его, но использую in-app-UIWebView. Мое приложение также имеет встроенный UIWebView, когда вы нажимаете кнопку, оно связывает их где-то в приложении.
После глубокой ссылки в приложение на панели навигации появятся две кнопки. Кнопка "Назад" (вверху слева) и кнопка "Вперед" (вверху справа).
Моя проблема
Если пользователь нажимает кнопку "вперед" (вверху справа), он перенаправляет их на мою веб-страницу, а затем навсегда нарушает мои глубокие ссылки, так что в любое время в будущем, когда пользователь нажимает на эту ссылку для перехода по глубокой ссылке, он всегда переходит на мою веб-страницу. вместо глубоких ссылок в приложение (которое было первоначальным намерением). Как я могу предотвратить это? Меня беспокоит то, что мое приложение имеет кнопки закрытия в верхнем правом углу, и если пользователь пытается нажать кнопку закрытия, он может случайно нажать кнопку "вперед" и навсегда прервать глубокую связь. Я пытался очистить кеш браузера, я пытался удалить и переустановить приложение. Но ничто не "исправит" глубокую связь после того, как она была навсегда отключена кнопкой "вперед". Единственный способ заставить его работать снова - это сделать полный сброс устройства и стереть все содержимое и настройки.
Вот изображение кнопок "назад" и "вперед" после глубокой ссылки в приложении.
Разница между моим вопросом и аналогичными вопросами по SO:
Подобный вопрос SO Но здесь они говорят, что пользователь может долго нажимать на "универсальную ссылку", и появляется всплывающая подсказка с просьбой "открыть". Я попробовал это для вышеупомянутого случая 1.), и мое приложение не появляется в опциях. Смотрите прикрепленный скриншот ниже. И это не работает вообще для вышеприведенного случая 2.). Как получить универсальную ссылку для работы с iOS WebViewController? Должен ли я использовать SafariViewController? Я не хочу использовать SafariViewController в моем приложении для этого случая, потому что я не хочу иметь ту верхнюю панель навигации, которую имеет SafariViewController.
2 ответа
Вы абсолютно правы: кнопка "вперед" - ужасный UI/UX. Это один из больших недостатков универсальных ссылок, указанных в этом посте. Нет возможности отключить кнопку вперед, и как только она сработает, вы облажались.
Самый простой способ повторно включить поведение универсального связывания после его выключения - это длительное нажатие на ссылку. Но это не работает, если ваша ссылка отключена системой на основании некоторых других критериев (более подробно ниже). Лучше всего получить чистый выстрел, чтобы вставить URL-адрес универсальной ссылки в стандартное приложение Notes и попробовать нажать его там.
Чтобы ответить на несколько других ваших вопросов:
- Универсальные ссылки работают внутри
UIWebView
( согласно документации Apple).SafariViewController
не обязательно. - В некоторых ситуациях универсальные ссылки отключены на системном уровне. Здесь есть список, но это главный, который приходит на ум как потенциально применимый в этой ситуации:
Universal Links не будет работать с пользовательским щелчком элемента в том же домене. Пример: если на google.com есть универсальная ссылка, указывающая на другую универсальную ссылку на google.com, приложение не откроется.
- Ваш второй пример изображения из Chrome. Универсальные ссылки должны работать (условно) в Chrome, но указывает ли ссылка на тот же домен, что и страница, которую вы уже загрузили? Если так, то вот почему вы не видите
Open in [app]
вариант.
Вы не можете отключить кнопку, чтобы открыть веб-сайт, но вы можете создать путь в другом направлении: используйте смарт-баннер на веб-сайте, и когда пользователи нажмут "Открыть" (или локализованный эквивалент), они будут перенаправлены на ваш сайт. приложение, и это также сбросит настройки по умолчанию для открытия универсальных ссылок в вашем приложении вместо Safari.