1

i-tunes のアプリ内リンクを次のように使用します。

NSString *app_link = @"samuraivszombiesdefense";
NSString *link = [@"itms-apps://itunes.com/apps/"stringByAppendingString:app_name];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:link]];

誰かがたまたま知っていますか: この「アプリ名」は何ですか - iTunes で作成されたアプリケーション レコードの名前 (禁止記号を除く) (iTunesConnect->「アプリの管理」画面で確認できるもの) または「アプリ名」フィールドiTunesConnect でバージョンの詳細を編集するときのメタデータとアップロード?

つまり、アプリのメタデータに多くの言語が含まれている場合、言語ごとに「アプリ名」が異なります。appname が英語のアプリ名の場合、「itms-apps://itunes.com/apps/appname」のようなリンクは機能しますか?

4

3 に答える 3

1

わかりました、これが私の解決策です。http://itunes.apple.com/app/idXXXXXXXXX?mt=8のような URL を使用することにしまし た。XXXXXXXXX はアプリの ID です。国のプレフィックスがないので、アメリカやドイツだけでなく、グローバルに機能すると思います。か否か?

この種のリンクは、複数のリダイレクトを引き起こす可能性があります。それらを避けるために、私はそのようなコードを使用しました(Apple docsのコードに基づいており、かなりうまく機能します):

   @interface iTunesOpener ()
{
    NSURL *iTunesURL;
}

- (void)openAppLinkFromAppId:(NSString *) appid;

- (void)openReferralURL:(NSURL *)referralURL;

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response;

- (void)connectionDidFinishLoading:(NSURLConnection *)connection;

@end


@implementation iTunesOpener

- (void)openAppLinkFromAppId:(NSString *) appid
{
    NSString *iTunesLink = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@?mt=8", appid];
    NSURL* url = [NSURL URLWithString:iTunesLink];
    [self openReferralURL: url];
}

// Process a LinkShare/TradeDoubler/DGM URL to something iPhone can handle
- (void)openReferralURL:(NSURL *)referralURL
{
    NSURLConnection *con = [[NSURLConnection alloc] initWithRequest:[NSURLRequest requestWithURL:referralURL] delegate:self startImmediately:YES];
    [con release];
}

// Save the most recent URL in case multiple redirects occur
// "iTunesURL" is an NSURL property in your class declaration
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)response
{
    iTunesURL = [response URL];
    if( [iTunesURL.host hasSuffix:@"itunes.apple.com"])
    {
        [connection cancel];
        [self connectionDidFinishLoading:connection];
        return nil;
    }
    else
    {
        return request;
    }
}

// No more redirects; use the last URL saved
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    [[UIApplication sharedApplication] openURL:iTunesURL];
}

@end
于 2012-11-20T20:52:46.750 に答える
0

私たちが見つけた最善の解決策は、URLを予測しようとするのを避け、カスタムURLリダイレクトを作成するhttp://mycompany.com/redirects/my-app-itunesことです。これを更新すると、正しいURLにリダイレクトできるようになります。

使用しなければならない正確な文字列は、特に特殊文字やスペースなどがある場合、正しく理解するのが困難です。ルールが変更されたり、Appleが何かを変更することを決定したりする場合もあります。URLは管理下に置くのが最善です。

本当にこのルートに行きたい場合は、Appleのこのドキュメントを参照してください。アプリ名をわかりやすい短いiTunesURLに変換するために必要なことを正確に詳しく説明しています。

  • すべての空白を削除します
  • すべての文字を小文字に変換します
  • すべての著作権(©)、商標(™)および登録商標(®)記号を削除します
  • アンパサンド(「&」)を「and」に置き換えます
  • ほとんどの句読点を削除します(セットについてはリスト2を参照してください)
  • アクセント付きおよびその他の「装飾された」文字(ü、åなど)をそれらの要素文字(u、aなど)に置き換えます。
  • 他のすべての文字はそのままにします。

アプリケーション名は、iTunes Connectのアプリケーションリスト(ローカライズされていない)に表示される名前である必要があります。ただし、これをテストするのが最善です。

最後に、Appleから:

これらのitunes.comのURLは便宜上提供されており、特定のアプリケーションまたは会社へのリンクが保証されているわけではありません。マーケティングやその他の公開資料で使用する前に、必ずURLをテストしてください。名前の競合がある場合は、URL内に一意の数値識別子が含まれている標準のitunes.apple.comURLを引き続き使用してください。

于 2012-11-20T15:43:28.597 に答える
0

編集:すべての国で同じリンクを使用するだけでは、アプリのリンクは機能しません。異なる国ではリンクが異なるためです。たとえば、中国の Facebook のリンクには、「/com」と「/app」の間に「/cn」があります。写真を見てください:ここに画像の説明を入力


非常に簡潔にするために:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/appname"]];

開発者のためにすべてのアプリに送信する場合は、

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/developername"]];

URL に会社名が含まれる特定のアプリを開きたい場合:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/developername/appname"]];

詳細については、この質問を参照してください:アプリ ストアでアプリにリンクする方法

于 2012-11-20T14:14:02.860 に答える