Итак, для моего нового приложения у меня есть схема URL-адресов, чтобы люди могли запускать мое приложение из другого приложения или с веб-сайта... "myapp://" ... Итак, что произойдет, если в AppStore есть другое приложение, которое имеет ту же схему URL, что и моя? Или если кто-то попытается украсть мою схему URL?
Несколько приложений с одной и той же схемой URL — iOS
Ответы (4)
Если два приложения регистрируют одну и ту же настраиваемую схему URL-адресов, неизвестно, какое приложение будет фактически запущено. Один будет запущен, но нет никакого способа узнать.
Вот это настоящий кикер. Если на вашем устройстве есть два приложения с одинаковой схемой URL-адресов, и вы удаляете одно из них, которое фактически запускается, другое не будет запускаться по URL-адресу без перезагрузки устройства iOS.
Лучшее решение — убедиться, что ваша пользовательская схема URL-адресов не тривиальна, поэтому маловероятно, что другое приложение будет иметь такую же схему.
Согласно документам Apple:
Если несколько сторонних приложений регистрируются для обработки одной и той же схемы URL-адресов, неизвестно, какое из приложений будет выбрано для обработки URL-адресов этого типа.
Точная цитата из документов Apple за 8 лет подряд:
Примечание. Если несколько сторонних приложений регистрируются для обработки одной и той же схемы URL-адресов, в настоящее время не существует процесса определения того, какое приложение получит эту схему.
Источники:
- Связь с другими приложениями (архив за декабрь 2011 г.)
- Внедрение пользовательских схем URL (архив за май 2019 г.)
По состоянию на сентябрь 2019 года эта часть документации была удалена с сайта Apple. Ближайшим связанным документом теперь может быть Зарегистрируйте свою схему URL.
Обновлено для 2016 г.
Политика Apple изменилась с 2012 года. Сегодня они указывают, что несколько приложений не могут регистрироваться по одной и той же схеме. Время регистрации - гораздо более чистое место для разрешения конфликтов, чем время выполнения, поскольку оно позволяет избежать проблем безопасности, обсуждаемых в других ответах.
Примечание. Если несколько сторонних приложений регистрируются для обработки одной и той же схемы URL-адресов, в настоящее время не существует процесса определения того, какое приложение получит эту схему.
Как описано в других ответах в этой теме, вполне допустимо, чтобы несколько приложений были зарегистрированы как способные обрабатывать определенную пользовательскую схему URL-адресов, и если на устройстве установлено более 2 приложений, которые могут обрабатывать определенный настраиваемый URL-адрес. схеме не определено, какое приложение будет выбрано системой во время выполнения.
Если для вашего конкретного варианта использования важно, чтобы ваше приложение и только ваше приложение было зарегистрировано на устройстве как способное обрабатывать определенный URL-адрес, тогда предпочтите универсальных ссылок по . Универсальные ссылки — это стандартные ссылки HTTP или HTTPS, и грубая идея заключается в том, что при установке вашего приложения система проверяет файл, хранящийся на вашем веб-сервере, чтобы убедиться, что ваш веб-сайт позволяет вашему приложению открывать URL-адреса от своего имени. Если ваше приложение не установлено на устройстве при открытии такого URL-адреса, система открывает URL-адрес в Safari как обычно, позволяя вашему веб-сайту обрабатывать его.
Дополнительную информацию об универсальных ссылках и схемах настраиваемых URL-адресов см. в разделе Разрешение приложениям и веб-сайтам ссылаться на Страница документации «Ваш контент».