この状況では、iPhoneアプリで「myAppを開く」(myAppがデバイスにインストールされている場合)または「myAppをダウンロードする」(myAppがデバイスにインストールされていない場合)というボタンを表示する必要があります。これを行うには、アプリ(既知のカスタムURLを使用)がデバイスにインストールされているかどうかを検出する必要があります。これどうやってするの?前もって感謝します。
2014年1月8日更新-あなたができる3つのこと
私は実際にクライアントのためにこれをもう一度しなければなりませんでした。彼らは、ユーザーがメインアプリから2番目のアプリを開くことができるようにしたいと考えていました。
これが私の発見です。 canOpenURL
メソッドを使用してアプリがインストールされているかどうかを確認するか、openURL
メソッドを使用して
各シナリオで利用可能なすべてのコードサンプル
//Find out if the application has been installed on the iOS device
- (BOOL)isMyAppInstalled {
return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"nameOfMyApp:"]];
}
- (IBAction)openOrDownloadApp {
//This will return true if the app is installed on the iOS device
if ([self myAppIsInstalled]){
//Opens the application
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"nameOfMyApp:"]];
}
else { //App is not installed so do one of following:
//1. Take the user to the Apple store so they can download the app
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://iTunes.com/apps/nameOfMyApp"]];
//OR
//2. Take the user to a list of applications from a developer
//or company exclude all punctuation and space characters.
//for example 'Pavan's Apps'
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://iTunes.com/apps/PavansApps"]];
//OR
//3. Take your users to a website instead, with maybe instructions/information
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.pavan.com/WhyTheHellDidTheAppNotOpen_what_now.html"]];
}
}
1つのオプションを選択してください、私はあなたを選択で台無しにしました。要件に合ったものを選択してください。私の場合、プログラムのさまざまな領域で3つのオプションすべてを使用する必要がありました。
アプリのURLスキームが「myapp:」の場合、
BOOL myAppInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myapp:"]];
(iOS 3.0が必要です。)
アプリがデバイスにインストールされているかどうかを確認するには
1)info.plistに、以下の例のようにLSApplicationQueriesSchemesを追加します
2)およびURLタイプ
3)アプリがインストールされているかどうかを確認します
- (IBAction)openAppPressed:(UIButton *)sender {
NSString *urlString = @"XYZAPP://";
NSURL *url = [NSURL URLWithString:urlString];
if ([[UIApplication sharedApplication] canOpenURL:url]) {
[[UIApplication sharedApplication] openURL:url];
}
else {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"iTunes link for download app"]];
}
}
このアプリスニッフィングが必要なページの先頭に、単純なメタタグを追加できます。
詳細については、こちらをご覧ください。