Как перенаправить пользователя в мобильное приложение или веб-сайт при нажатии гиперссылки, отправленной по электронной почте? Должно ли это быть обработано на стороне сервера с помощью PHP?

У меня есть веб-сайт, который уже разработан с использованием PHPFox, и он работает нормально. Теперь команда разработчиков iOS создала мобильное приложение в iOS для той же функциональности, что и на веб-сайте. Пользователь может выполнять все операции с помощью этого приложения, которое он / она может делать на веб-сайте. Другими словами, мы можем сказать, что это приложение является репликой существующего веб-сайта. Единственным ограничением в разработке приложения является то, что поток и функциональность должны быть такими же, как на веб-сайте. Не должно быть никаких различий в функциональности между приложением и существующим веб-сайтом.

Для этого приложения они используют те же функции, что и в базе кода PHPFox. Я делаю команду iOS этими функциями доступными с помощью API REST, разработанных с использованием Slim framework. В этих API я принимаю запрос в формате JSON из приложения, декодирую его, вызываю нужную функцию из базы кода PHPFox, передавая необходимые параметры запроса, получая ответ от функции, конвертируя ее в формат JSON и отправляю обратно к мобильному приложению.

Теперь давайте сосредоточимся на проблеме, с которой я сталкиваюсь.

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

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

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

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

Как мне это достичь?

Еще одна вещь, которую следует отметить здесь, – это путь перенаправления (значение атрибута href ) ссылки, отправляемой в почту, генерируется только в код PHPFox веб-сайта. Итак, если мне нужно внести изменения в логику для достижения этой новой функциональности, как я должен это сделать, не меняя системный поток на приложение и веб-сайт? Или я должен написать для него новую функцию, чтобы не изменять существующий код PHPFox?

Я исследовал решение этой проблемы. Я узнал о Битли, который мог бы выполнить эту работу, но не мог понять, как это сделать.

Это требование поднимается командой iOS для меня (команда PHP) на основе этой статьи гиперссылки, которую они нашли в Интернете. См. Также.

Итак, мой прямолинейный вопрос заключается в том, что эта статья посвящена кодированию iOS и не имеет ничего общего с кодированием на стороне сервера (например, PHP), нужно ли мне что-то делать на стороне сервера, используя PHP для достижения этой функциональности?

    Вам (или вашей команде iOS) необходимо добавить схему URL-адреса в приложение iOS, чтобы сделать возможной глубокую привязку. Затем вам нужен веб-сайт, который проверяет, доступна ли эта схема URL (и, следовательно, приложение iOS) на устройстве. Если да, то вы переходите к приложению, если вы не перешли на сайт. Затем вы вставляете ссылку на сайт проверки в своих письмах.

    Есть службы, которые могут помочь вам с полной настройкой. Я знаю, это https://branch.io, но я уверен, что там больше.

    Редактировать:

    Глубокая связь в iOS: http://blog.originate.com/blog/2014/04/22/deeplinking-in-ios/

    Из этой ссылки: «Чтобы включить глубокую привязку, перейдите на вкладку« Информация »в проекте Xcode. В разделе« Типы URL »нажмите кнопку« + », а затем добавьте идентификатор и схему URL. Убедитесь, что идентификатор и URL-схема выберите уникальные. Обратите внимание на схему URL, которую вы вводите, так как iOS знает, как открыть ссылку в вашем приложении ».

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

    Создайте ссылку для iOS и Web:

    Создайте ссылку, которая запускает приложение iOS, или перенаправляет на приложение store

    а также

    Возможно ли зарегистрировать http + доменную схему URL для приложений iPhone, например YouTube и Maps?

    вместо перенаправления на AppStore вы хотите перенаправить на свою веб-страницу.

    Вам не нужно ничего делать. Попросите разработчиков iOS прочитать о URL Schemes которые, как представляется, были объяснены в упомянутой вами ссылке, на основании которой вы столкнулись с командой iOS. Эта ссылка показывает, как вы можете сделать свое приложение возможным для запуска из другого места (приложение в вашем случае почтового приложения). Причина, по которой электронная почта берет пользователя на веб-сайт, а не приложение, связана с тем, что гиперссылка упоминает вашу веб-ссылку и ничего не говорит о приложении.

    В основном похоже на то, как ваш сайт имеет ссылку формы, например, http://youwebsite.com/ , приложение также имеет ссылку для yourapp:// которая работает на устройстве, когда приложение iOS имеет встроенную URL scheme . Поэтому вам нужно указать этот URL в гиперссылке по электронной почте.

    См. Этот ответ, который может помочь вам настроить почтовую ссылку.

    Итак, чтобы подвести итог,

    1. Вам не нужно ничего делать
    2. Команда iOS должна интегрировать схему URL
    3. Место, откуда создается электронное письмо, убедитесь, что ссылка обновлена ​​соответствующим образом

    PS: Используйте ссылку выше для выяснения того, как ссылка должна работать, не объяснили ее здесь по двум причинам,

    a) Его выходят за рамки вопросов, вам нужно знать, нужно ли вам делать какие-либо изменения в качестве разработчика PHP, поэтому ответ НЕТ.

    б) Он уже рассмотрен в этом ответе

    Используя javascript, вы можете настроить целевую страницу для туннелирования пользователей:

    Вы можете перенаправить пользователя в схему приложения, используя следующее:

      document.location="myApp://myUrl"; 

    Если браузер не находит схему uri, вы можете использовать setTimeout для перенаправления пользователя на свою веб-страницу

     setTimeout(function() { document.location="/path/inside/website.html"; }, 100); 

    Другим хорошим решением было бы проверить существование схемы url с использованием iframe в небольшом тестовом файле и перенаправить текущую страницу, если iframe можно загрузить

     <iframe id="ifrm" src="" style="display:none"></iframe> <script> window.frames['ifrm'].onload = function() { document.location="myApp://myUrl"; }; window.frames['ifrm'].src = "myApp://myUrl/ok.txt"; </script> 

    Поскольку мое понимание решения прост.

    Всякий раз, когда пользователь запрашивает забыли пароль или создал новую учетную запись ..etc. вы должны определить, что пользователь отправляет запрос с iPhone or Website , если пользователь отправляет запрос с веб-сайта, вы должны передать ссылку активации для веб-страницы, иначе вы должны отправить ссылку на приложение, например, это «itms-apps: //itunes.apple .com / app / idyourappID " , согласно мне, для этой команды PHP необходимо получить еще один параметр из команды разработчиков, который используется для идентификации устройства, такого как 'web' или 'mobile' чтобы ваша проблема решалась.

    Надеюсь, что это поможет вам.