URL Scheme for App which is not installed

后端 未结 2 724
灰色年华
灰色年华 2021-02-05 14:30

Simple question, I\'m developing an application that will register its own URL Scheme. I plan to launch the application using a QRCode via a person\'s favourite QRCode reader.

2条回答
  •  鱼传尺愫
    2021-02-05 15:13

    You can simply read the return value of the method -(BOOL)openURL:(NSURL*)url. If it's NO, it means that the target application isn't installed. The following code gives an example using the navigon url scheme:

    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!)
    }
    

提交回复
热议问题