Можно ли перенаправить мобильных пользователей только в том случае, если у них установлено приложение?

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

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

Я уже реализовал логику, чтобы определить, находится ли пользователь на рабочем столе или мобильном устройстве (в большинстве случаев, по крайней мере); однако мне пришло в голову, что некоторые пользователи могут не устанавливать приложение, или что настольное устройство может быть неправильно идентифицировано как мобильное устройство в будущем. Если компьютер, который не имеет установленного приложения, перенаправлен, он столкнется с некоторой ошибкой или пустой страницей. Итак, мой вопрос в том, есть ли способ узнать, будет ли Response.Redirect в мобильном приложении успешным?

До сих пор я исследовал параметр HttpWebRequest/HttpWebResponse, чтобы попытаться определить успех или неудачу на основе запрошенного ответа на страницу до перенаправления, но это не похоже на допустимую опцию, поскольку URL-адрес, связанный с приложением, не будет предоставлять допустимый URI для проверки HttpWebRequest. Любая помощь или совет будут очень признательны. Спасибо!

Для уточнения, перенаправление выглядит примерно так:

Response.Redirect("opencustomapp://SomePage?Parameter1=bar&Parameter2=foo");

Ожидаемый результат - не открывать веб-страницу, а скорее взаимодействовать с приложением, установленным на пользовательском телефоне, который был сопоставлен с этим URL-адресом.

EDIT: Я принял ответ, что не представляется возможным делать то, о чем я просил, но в случае, если у других возникла эта проблема, я хотел бы приложить некоторые полезные ссылки на другие вопросы о том, как использовать cookie для определения того, установлен и как перенаправить пользователя в другое место, если куки не установлен. Для моего собственного кода я, вероятно, собираюсь сочетать проверку агента пользователя и функцию setTimeout(), поскольку это можно реализовать с помощью кода с использованием ClientScript.RegisterStartupScript без каких-либо изменений в существующем приложении.

1 ответ

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

licensed under cc by-sa 3.0 with attribution.