Подтвердить что ты не робот

Зачем нужно поле plist ID (CFBundleURLName) для использования специальной схемы URL в iOS?

Я использую настраиваемую схему URL, чтобы открыть приложение iOS, когда эта веб-ссылка используется на устройстве: Demo77://someurl

Чтобы настроить его, я добавил Demo77 в качестве элемента массива Схемы URL (CFBundleURLSchemes) в Info.plist.

Документация Apple говорит, что мне также нужно включить строковый ключ идентификатор URL (CFBundleURLName) в Info.plist. Этот ключ содержит "абстрактное имя схемы URL".

Я использовал не ключ идентификатор URL, и ссылки по-прежнему открывают мое приложение. Все работает без идентификатора URL.

Вопрос: действительно ли нужно включить ключ идентификатор URL в plist? И если да - почему?

введите описание изображения здесь

Update

Этот вопрос отличается от идентификатора URL-адреса и схемы URL, где задается вопрос о том, для чего используется ключ URL-идентификатора. Я не спрашиваю, для чего он используется. Я спрашиваю, нужно ли вообще использовать "Идентификатор URL"? Схемы URL в моем приложении прекрасно работают без него. Обратите внимание, что ответы на вопрос идентификатор URL-адреса и схемы URL не затрагивают мой вопрос вообще. Извините, если мой первоначальный вопрос был недостаточно ясным.

4b9b3361

Ответ 1

Согласно Apple Docs

Идентификатор вы поставляете с вашей схемой отличает приложение от других, которые декларируют поддержку одной и той же схеме.

Хотя использование обратной строки DNS является оптимальной практикой, это не мешает другим приложениям регистрировать ту же схему и обрабатывать связанные ссылки. Используйте универсальные ссылки вместо пользовательских схем URL для определения ссылок, которые уникальным образом связаны с вашим сайтом.

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

Ответ 2

Если у вас установлено 2 приложения с одинаковой схемой URL, например:

yourscheme://

тогда у вас есть 2 конфликтующих приложения.

Как система решит открыть, какое приложение запустить?

Согласно документации Inter-App Communication

Если более одного стороннего приложения регистрируется для обработки одной и той же схемы URL-адреса, в настоящее время не существует процесса определения того, какому приложению будет присвоена эта схема

Пожалуйста, проверьте этот ответ для пользователя, который столкнулся с проблемой:

Кроме того, насколько я тестировал и испытывал, если у вас есть 2 конфликтующих приложения, то, по-видимому, это первое установленное приложение, которое используется, а когда это приложение удаляется, второе приложение, которое теперь является единственным приложением, поддерживающим конкретную схему URL-адресов. до сих пор не используется

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

Ответ 3

Идентификатор URL - это обратный доменный адрес, который должен быть таким же, как ваш идентификатор Bundle, например. com.companyname.appname

Схемы URL - это начало URL, например, 'appname'. Когда вы вызываете это как URL-адрес, он нацеливается на идентификатор пакета, который запускает приложение.

Ссылка: Идентификатор URL-адреса и схемы URL