アプリケーションからAppstoreアプリを直接起動する方法
質問
iTunesストアを直接起動するいくつかのアプリを使用しました。 2.1 iPod 2Gでも使用しています。
サファリでアプリストアのリンクが機能しないバグが2.1にあることは知っていますが、どういうわけかサファリを介さずに直接アプリストアを起動しています。
これをどうやってやるの?文書化されていないopenURL機能ですか?
解決
iTunesからアプリのアイコンをデスクトップにドラッグすると、直接使用できるリンクが表示されます(たとえば、 http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284036524&mt=8 は、デスクトップとクロスワードの両方でAppStoreをクロスワードに起動します。 iPhone)。
これをNSURLに挿入し、openURLを呼び出します。
他のヒント
非常に簡潔にする:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/appname"]];
開発者のすべてのアプリに送信する場合は、
を使用します[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/developername"]];
iOS 4.1のこれらの動作
AppStoreでアプリのレビューページに直接アクセスする方法を見つけました。
基本的には以下のように行われます。私のブログをお読みください。投稿。
- (IBAction)gotoReviews:(id)sender
{
NSString *str = @"itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa";
str = [NSString stringWithFormat:@"%@/wa/viewContentsUserReviews?", str];
str = [NSString stringWithFormat:@"%@type=Purple+Software&id=", str];
// Here is the app id from itunesconnect
str = [NSString stringWithFormat:@"%@289382458", str];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
}
レビューの代わりにアプリケーションの詳細を表示する場合は、次のようなURLを使用できます。
NSString *appId = @"app id";
NSString *endPoint = [NSString stringWithFormat:@"phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=%@&mt=8", appId];
NSString *link = [NSString stringWithFormat:@"itms-apps://%@", endPoint];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:link]];
iOS 6.1を搭載したiPhoneでこれをテストし、すぐにApp Storeアプリにリダイレクトします。
Ben Gottliebは正しいですが、URLを取得するより速い方法があります。iTunesの任意のアプリケーションアイコンを右クリックして、「iTunes Store URLをコピー」を選択できます。
次に、 UIApplication openURL
を呼び出します。
「phobos.apple.com」と表示されていることを確認してください。 " itunes.apple.com"ではなく
前者はApp Storeを直接開き、後者は最初にMobileSafariを開き、次にApp Storeを開きます。
itunesconnect.apple.com"アプリケーションの管理"からAppIDを取得できます
iTunesのリンクを取得したくない場合は、これを実行できます。
- AppStoreでアプリを選択する
- 右上の[友達に教える]ボタンをクリックします。
- 自分へのリンクをメールで送信
この作業は、iTunesリンクでは実現できなかった時期に行いました。
アフィリエイトリンクがあり、途中でSafariを使用せずにApp Storeアプリを直接開く場合は、非表示のUIWebViewまたはNSURLConnectionを使用できます。後者については、この投稿 http://gamesfromwithin.com/handling-app-storeを参照してください。 -and-linkshare-links
ここに、私が使用し、言及したさまざまなiOSバージョンに対してテストしたコードを示します。明らかに顧客IDを自分のものに変更します。
- (void)showOurAppsInAppStore
{
NSString *searchUrl = nil;
// iPad
if ([DeviceController isDeviceAnIpad]) {
searchUrl = @"itms-apps://itunes.apple.com/us/artist/seligman-ventures-ltd/id326161338";
}
// iPhone / iPod Touch
else {
// iOS 7+
if ([DeviceController isDeviceOperatingSystemAtleast:@"7.0"]) {
searchUrl = @"itms-apps://itunes.apple.com/artist/seligman-ventures-ltd/id326161338";
}
// iOS 6
else if ([DeviceController isDeviceOperatingSystemAtleast:@"6.0"]) {
searchUrl = @"itms-apps://ax.itunes.apple.com/artist/seligman-ventures-ltd/id326161338";
}
// Pre iOS 6
else {
NSString *companyName = @"Seligman Ventures";
searchUrl = [NSString stringWithFormat:@"http://phobos.apple.com/WebObjects/MZSearch.woa/wa/search?WOURLEncoding=ISO8859_1&lang=1&output=lm&country=US&term=%@&media=software", [companyName stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
}
}
[[UIApplication sharedApplication] openURL: [NSURL URLWithString:searchUrl]];
}
アプリをリリースするだけの場合..." app ID#"はありません。まだ...したがって、これらのメソッドはいずれも機能しません。
「機能しないリンク」を挿入する必要がありました。私のv1.0で...そしてその後v1.1の更新で...実際のリンクとアプリID番号を追加しました。