Схема URL для приложения, которое не установлено - PullRequest
12 голосов
/ 14 марта 2012

Простой вопрос, я разрабатываю приложение, которое зарегистрирует свою собственную схему URL.Я планирую запустить приложение, используя QRCode через любимый читатель QRCode человека.

Мой вопрос: если мое приложение еще не установлено на их iPhone / iPad, что произойдет?Будут ли они направлены в App Store для загрузки моего приложения?Или это просто не удастся?

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

Ответы [ 2 ]

11 голосов
/ 15 марта 2012

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

5 голосов
/ 09 января 2014

Вы можете просто прочитать возвращаемое значение метода -(BOOL)openURL:(NSURL*)url.Если это НЕТ, это означает, что целевое приложение не установлено.В следующем коде приведен пример использования схемы URL-адреса navon:

NSString *stringURL = @"navigon://coordinate/NaviCard/19.084443/47.573305";
NSURL *url = [NSURL URLWithString:stringURL];
if([[UIApplication sharedApplication] openURL:url]) {
    NSLog(@"Well done!");
} else {
    stringURL = @"https://itunes.apple.com/it/app/navigon-europe/id320279293?mt=8";
    url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
}

Update Swift 3

var stringURL = "navigon://coordinate/NaviCard/19.084443/47.573305"
var url = URL.init(string: stringURL)
if !UIApplication.shared.canOpenURL(url!) {
    stringURL = "https://itunes.apple.com/it/app/navigon-europe/id320279293?mt=8"
    url = URL.init(string: stringURL) 
}
if #available(iOS 10.0, *) {
    UIApplication.shared.open(url!, options: [:], completionHandler: nil)
} else {
    UIApplication.shared.openURL(url!)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...