2012-03-14 30 views
12

簡単な質問ですが、独自のURLスキームを登録するアプリケーションを開発しています。 QRコードを使ってアプリケーションを起動する予定です。インストールされていないアプリケーションのURLスキーム

私の質問:私のアプリケーションがまだiPhone/iPadにインストールされていない場合、どうなりますか?彼らは私のアプリをダウンロードするためにApp Storeに向かうだろうか?それとも失敗するのだろうか?

私は今は自分のMacではありません。そうでなければ、インストールされていないことがわかっているアプリケーションのURLを起動するためのテストアプリをビルドします。誰かが答える前に私がMacに戻ってきたら、その結果を私の質問に更新します。

答えて

11

あなたのアプリのスキームに直接リンクすると失敗します。しかし、利用可能なコードがon this StackOverFlow questionのウェブサイト上のページにリンクすると、アプリが開こうとするとアプリストアが開こうとしますが、失敗した場合はアプリストアが開こうとします。

6

メソッド-(BOOL)openURL:(NSURL*)urlの戻り値を読み取ることができます。それがNOの場合、ターゲットアプリケーションがインストールされていないことを意味します。次のコード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!) 
} 
関連する問題