簡單的問題,我正在開發一個應用程序,它將註冊自己的URL方案。我計劃通過一個人最喜愛的QRCode閱讀器使用QRCode啓動應用程序。未安裝的應用的URL方案
我的問題:如果我的應用程序尚未安裝在他們的iPhone/iPad上,會發生什麼情況?他們會被定向到App Store下載我的應用程序嗎?或者它會失敗?
我現在不在我的Mac上,否則我會構建一個測試應用程序,以啓動我知道未安裝的應用程序的URL。如果我在別人回答之前回到我的Mac,我會用我的結果更新問題。
簡單的問題,我正在開發一個應用程序,它將註冊自己的URL方案。我計劃通過一個人最喜愛的QRCode閱讀器使用QRCode啓動應用程序。未安裝的應用的URL方案
我的問題:如果我的應用程序尚未安裝在他們的iPhone/iPad上,會發生什麼情況?他們會被定向到App Store下載我的應用程序嗎?或者它會失敗?
我現在不在我的Mac上,否則我會構建一個測試應用程序,以啓動我知道未安裝的應用程序的URL。如果我在別人回答之前回到我的Mac,我會用我的結果更新問題。
如果您直接鏈接到您的應用程序方案,則會失敗。但是,如果您鏈接到網址上的代碼爲on this StackOverFlow question的網頁,它將嘗試打開您的應用,然後嘗試打開應用商店(如果失敗)。
您可以簡單地讀取方法-(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!)
}