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

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

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

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

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

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

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

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

Как мне этого добиться?

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

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

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

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

6

Решение

Вы (или ваша команда 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, либо перенаправляет в магазин приложений

а также

Можно ли зарегистрировать схему URL-адресов на базе домена http + для приложений iPhone, таких как YouTube и Карты?

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

3

Другие решения

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

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

Ссылаться на этот ответ что может помочь вам настроить ссылку на почту.

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

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

П.С .: Используйте ссылку выше, чтобы выяснить, как эта ссылка работает, здесь не объяснили это по двум причинам,

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

б) Это уже решено в этот ответ

1

Используя 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>
1

Как я понимаю, решение простое.

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

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

1
По вопросам рекламы [email protected]