iOS - Универсальные ссылки - Предотвращение открытия установленного приложения перенаправлением в браузере

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

Проходя процесс оформления/покупки, мы используем внешний сервис оплаты картой, который после ввода карты перенаправляет пользователя в службу аутентификации 3DS эмитента карты, а затем, по завершении, пользователь перенаправляется обратно на страницу на нашем сайте.

(~/cart.php?target=Payment_return)

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

наш файл ассоциации AASA содержит:

 "paths": ["NOT *target=product_search*","NOT /cart.php?target=payment_return*","*"]

но это исключение, похоже, не соблюдается.

Команда в тупике, и будет признательна за любой совет здесь.

Ясно, что это связано с собственными предпочтениями пользователя в отношении того, как он в последний раз открывал ссылку на наш веб-сайт или в приложение, и iOS «запоминает» этот выбор по умолчанию; (ситуация не возникает, если последним выбором пользователей было открытие наших ссылок в браузере); тем не менее, перенаправление при работе в браузере нежелательно, и исключение AASA, похоже, не работает.

Мы что-то пропустили здесь? или в этой же лодке наверняка должно быть много других? помощь.

Тиа.


person Geoff    schedule 17.06.2021    source источник
comment
Можете ли вы обновить свой пост с текущим AASA, пожалуйста, отредактируйте любую информацию, если это необходимо.   -  person n3dx    schedule 17.06.2021
comment
@n3dx У меня было по сути то же самое, что показано в документации Apple [здесь]:developer.apple.com/library/archive/documentation/General/ Я не знал о расширенном формате AASA по ссылке, предоставленной Бураком ниже.   -  person Geoff    schedule 19.06.2021


Ответы (1)


Из документации см. здесь:

Обратите внимание, что для сравнения используется только компонент пути URL. Другие компоненты, такие как строка запроса или идентификатор фрагмента, игнорируются.

Вероятно, поэтому исключения не соблюдаются.

Я не знаю, нужна ли вам поддержка iOS 13 ниже, но если вы ориентируетесь на iOS 13 и более поздние версии, все еще есть надежда, проверьте здесь подробную документацию.

В вашем случае это может быть что-то вроде (я не пробовал, просто чтобы дать вам представление):

{ "applinks": {
  "details": [
       {
         "appIDs": [...],
         "components": [
           {
              "/": "/cart.php*",
              "?": { "target": "payment_return" },
              "exclude": true,
              "comment": "Matches any URL whose path starts with cart.php and which has a query item with name 'target' and a value payment_return"
           }
         ]
       }
   ]}, ...}

И не забудьте переустановить приложение после смены AASA на сайте.

person Burak Akkaş    schedule 17.06.2021
comment
Спасибо. Это объясняет, почему исключения были проигнорированы. Я ожидаю, что с предложенными изменениями это решит это. Обновлю после тестирования. ты. - person Geoff; 19.06.2021
comment
благодарю вас. это решило проблему :) - person Geoff; 23.06.2021
comment
Нет проблем, рад помочь, @Geoff. Не могли бы вы отметить это как ответ? - person Burak Akkaş; 24.06.2021