Я предполагаю, что вы хотите протестировать Пользовательскую схему URL. Вы хотите использовать canOpenURL, чтобы узнать, можно ли сначала открыть URL. canOpenURL возвращает значение BOOL, указывающее, может ли схема URL-адресов обрабатываться некоторым приложением, установленным на устройстве. Если canOpenURL возвращает YES, вы продолжаете открывать URL-адрес с помощью openURL.
Ссылки на YouTube открывают приложение YouTube по умолчанию на устройствах iOS. Это поведение еще не тестируется на новом Apple TV, поскольку приложение YouTube недоступно в бета-версии tvOS.
Вот пример использования canOpenURL, чтобы узнать, установлен ли Facebook на устройстве iOS, используя его схему URL-адреса Cutsom:
Obj-C:
// Check if FB app installed on device
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"fb://"]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"fb://profile/355356557838717"]];
}
else {
// FB not installed
// Do something else
}
Swift:
// Check if FB app installed on device
if UIApplication.sharedApplication().canOpenURL(NSURL(string:"fb://")!) {
UIApplication.sharedApplication().openURL(NSURL(string:"fb://profile/355356557838717")!)
}
else {
// FB not installed
// Do something else
}
Я бы предположил, что такие приложения, как Facebook и другие, будут реализовывать свои собственные схемы URL-адресов так же, как их iOS-копии.