canOpenUrl и тел: // - PullRequest
       24

canOpenUrl и тел: //

1 голос
/ 23 февраля 2010

Мне сложно понять, как работает этот метод.

Из документации указано:

canOpenURL: возвращает ли приложение может открыть данный URL ресурс.

- (BOOL)canOpenURL:(NSURL *)url

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

Возвращаемое значение НЕТ, если нет приложения доступно, что примет URL; в противном случае возвращает YES.

Обсуждение Этот метод гарантирует, что что если openURL: называется, другой приложение будет запущено для обработки Это. Это не гарантирует, что полный URL действителен.

Доступность доступна в iPhone OS 3.0 и позже. Объявлено в UIApplication.h

В частности, если это:

гарантирует, что при вызове openURL: будет запущено другое приложение для его обработки.

Тогда, например, если я введу tel://HELLOWORLD, он вернет YES, а когда я пытаюсь openUrl, приложение телефона не вызывает его. Ничего не происходит, поэтому я предполагаю, что полный URL-адрес недействителен при попытке набрать номер.

Я понимаю, что он не проверяет полный URL-адрес, но по своей природе почему он не показывает ошибку или что-то еще, если я не могу набрать номер?

В основном мне интересно: что это такое точно проверка?

Я не уверен, что он просто проверяет тип обработчика и приложения, которые поддерживают этот конкретный обработчик (tel:// в этом случае не будет работать, например, для iPod Touch.).

Ответы [ 2 ]

12 голосов
/ 23 февраля 2010

Проверка не является целью этой функции. Он только проверяет, зарегистрировано ли приложение для этой схемы URL .

например. на iPod touch или iPad нет приложения для телефона, поэтому canOpenURL вернет NO для tel: URL.

Или, если вы запросите URL-адрес со схемой foo:, он вернет true, если на пользовательском устройстве установлено какое-либо приложение, которое утверждает, что обрабатывает эту схему.

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

0 голосов
/ 23 февраля 2010

Из документов :

Обсуждение

Этот метод гарантирует, что при вызове openURL: другое приложениебыть запущенным, чтобы справиться с этим. Это не гарантирует, что полный URL действителен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...