2012-03-14 50 views
12

簡單的問題,我正在開發一個應用程序,它將註冊自己的URL方案。我計劃通過一個人最喜愛的QRCode閱讀器使用QRCode啓動應用程序。未安裝的應用的URL方案

我的問題:如果我的應用程序尚未安裝在他們的iPhone/iPad上,會發生什麼情況?他們會被定向到App Store下載我的應用程序嗎?或者它會失敗?

我現在不在我的Mac上,否則我會構建一個測試應用程序,以啓動我知道未安裝的應用程序的URL。如果我在別人回答之前回到我的Mac,我會用我的結果更新問題。

回答

11

如果您直接鏈接到您的應用程序方案,則會失敗。但是,如果您鏈​​接到網址上的代碼爲on this StackOverFlow question的網頁,它將嘗試打開您的應用,然後嘗試打開應用商店(如果失敗)。

6

您可以簡單地讀取方法-(BOOL)openURL:(NSURL*)url的返回值。如果不是,則表示目標應用程序未安裝。下面的代碼提供了使用NAVIGON URL方案的示例:

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]; 
} 

更新夫特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!) 
}