简单的问题,我正在开发一个注册自己的URL Scheme的应用程序。我计划通过一个人最喜欢的QRCode阅读器使用QRCode启动应用程序。
我的问题:如果我的应用尚未在iPhone / iPad上安装,会发生什么?他们会被引导到App Store下载我的应用吗?或者它会失败吗?
我现在不在我的Mac上,否则我会构建一个测试应用程序来启动我知道未安装的应用程序的URL。如果我在某人回答之前回到我的Mac,我会用我的结果更新问题。
答案 0 :(得分:11)
如果直接链接到您的应用方案,则会失败。但是,如果您使用可用代码on this StackOverFlow question链接到网站上的网页,则会尝试打开您的应用,如果失败则会尝试打开应用商店。
答案 1 :(得分:5)
您只需阅读方法-(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];
}
更新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!)
}