ios - 作成 - wordpress appstore リンク



App Storeでアプリにリンクする方法 (15)

2015年夏以降の...

-(IBAction)clickedUpdate
{
    NSString *simple = @"itms-apps://itunes.apple.com/app/id1234567890";
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:simple]];
}

'id1234567890'を 'id'と 'あなたの10桁の数字'に置き換えてください

  1. これはすべてのデバイスで完全に機能します

  2. それはアプリストアにまっすぐに行きますが、リダイレクトはありません。

  3. すべての国内店舗で OKです。

  4. loadProductWithParameters 使用に移行する必要がありますが、リンクの目的が実際に内部にあるアプリを更新することになっている場合は、この「旧式の」アプローチを使用する方がよいでしょう。

私は私のiPhoneゲームの無料版を作成しています。 私は、無料版の中にボタンを持っていて、アプリストアの有料版に人を連れて行きたいと思っています。 標準のリンクを使用している場合

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=300136119&mt=8

iPhoneはまずSafariを開き、次にApp Storeを開きます。 私はアプリストアを直接開く他のアプリを使っていますので、可能です。

何か案は? App StoreのURLスキームは何ですか?


Answer #1

少なくともiOS 9以上

  • App Storeで直接開く

アプリ

itms-apps://itunes.apple.com/app/[appName]/[appID]

開発者のアプリのリスト

itms-apps://itunes.apple.com/developer/[developerName]/[developerID]

Answer #2

Xcode 9.1およびSwift 4の場合:

  1. インポートStoreKit:
import StoreKit

2.プロトコルを準拠させる

SKStoreProductViewControllerDelegate

3.プロトコルの実装

    func openStoreProductWithiTunesItemIdentifier(identifier: String) {
    let storeViewController = SKStoreProductViewController()
    storeViewController.delegate = self

    let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
    storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) -> Void in
        if loaded {
            // Parent class of self is UIViewContorller
            self?.present(storeViewController, animated: true, completion: nil)
        }
    }   
}

3.1

    func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
    viewController.dismiss(animated: true, completion: nil)
}
  1. 使い方:
openStoreProductWithiTunesItemIdentifier(identifier: "here_put_your_App_id")

注意:

APPの正確なIDを入力することは非常に重要です。 この原因エラー(エラーログを表示しませんが、このために何も問題ありません)


Answer #3

iOS 6からSKStoreProductViewControllerクラスを使用して正しい方法で起動します。

Swift 3.x

func openStoreProductWithiTunesItemIdentifier(identifier: String) {
    let storeViewController = SKStoreProductViewController()
    storeViewController.delegate = self

    let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
    storeViewController.loadProduct(withParameters: parameters) { [weak self] (loaded, error) -> Void in
        if loaded {
            // Parent class of self is UIViewContorller
            self?.present(storeViewController, animated: true, completion: nil)
        }
    }
}

func productViewControllerDidFinish(_ viewController: SKStoreProductViewController) {
    viewController.dismiss(animated: true, completion: nil)
}
// Usage:
openStoreProductWithiTunesItemIdentifier(identifier: "13432")

あなたは、このようなアプリのiTunesのアイテム識別子を得ることができます:(静的なものの代わりに)

スウィフト3.2

var appID: String = infoDictionary["CFBundleIdentifier"]
var url = URL(string: "http://itunes.apple.com/lookup?bundleId=\(appID)")
var data = Data(contentsOf: url!)
var lookup = try? JSONSerialization.jsonObject(with: data!, options: []) as? [AnyHashable: Any]
var appITunesItemIdentifier = lookup["results"][0]["trackId"] as? String
openStoreProductViewController(withITunesItemIdentifier: Int(appITunesItemIdentifier!) ?? 0)

Swift 2.x

func openStoreProductWithiTunesItemIdentifier(identifier: String) {
    let storeViewController = SKStoreProductViewController()
    storeViewController.delegate = self

    let parameters = [ SKStoreProductParameterITunesItemIdentifier : identifier]
    storeViewController.loadProductWithParameters(parameters) { [weak self] (loaded, error) -> Void in
        if loaded {
            // Parent class of self is UIViewContorller
            self?.presentViewController(storeViewController, animated: true, completion: nil)
        }
    }
}

func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
    viewController.dismissViewControllerAnimated(true, completion: nil)
}
// Usage
openStoreProductWithiTunesItemIdentifier("2321354")

目標 - C

static NSInteger const kAppITunesItemIdentifier = 324684580;
[self openStoreProductViewControllerWithITunesItemIdentifier:kAppITunesItemIdentifier];

- (void)openStoreProductViewControllerWithITunesItemIdentifier:(NSInteger)iTunesItemIdentifier {
    SKStoreProductViewController *storeViewController = [[SKStoreProductViewController alloc] init];

    storeViewController.delegate = self;

    NSNumber *identifier = [NSNumber numberWithInteger:iTunesItemIdentifier];

    NSDictionary *parameters = @{ SKStoreProductParameterITunesItemIdentifier:identifier };
    UIViewController *viewController = self.window.rootViewController;
    [storeViewController loadProductWithParameters:parameters
                                   completionBlock:^(BOOL result, NSError *error) {
                                       if (result)
                                           [viewController presentViewController:storeViewController
                                                              animated:YES
                                                            completion:nil];
                                       else NSLog(@"SKStoreProductViewController: %@", error);
                                   }];

    [storeViewController release];
}

#pragma mark - SKStoreProductViewControllerDelegate

- (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
    [viewController dismissViewControllerAnimated:YES completion:nil];
}

あなたはkAppITunesItemIdentifier (appのitunesアイテム識別子)を次のように得ることができますkAppITunesItemIdentifier静的なものの代わりに)

NSDictionary* infoDictionary = [[NSBundle mainBundle] infoDictionary];
    NSString* appID = infoDictionary[@"CFBundleIdentifier"];
    NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://itunes.apple.com/lookup?bundleId=%@", appID]];
    NSData* data = [NSData dataWithContentsOfURL:url];
    NSDictionary* lookup = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
    NSString * appITunesItemIdentifier =  lookup[@"results"][0][@"trackId"]; 
    [self openStoreProductViewControllerWithITunesItemIdentifier:[appITunesItemIdentifier intValue]];

Answer #4

編集日時:2016-02-02

iOS 6 SKStoreProductViewControllerクラスが導入されました。 アプリを離れることなくアプリをリンクすることができます。 Swift 3.x / 2.xObjective-Cのコードスニペットはhereです。

SKStoreProductViewControllerオブジェクトは、ユーザーがApp Storeから他のメディアを購入できるストアを提供します。 たとえば、ユーザーが別のアプリを購入できるようにするために、アプリにストアが表示されることがあります。

アップルデベロッパー向けのニュースとアナウンスから。

iTunesリンクを使用してApp Storeであなたのアプリケーションに直接顧客を誘導するiTunesリンクを使用すると、WebサイトやマーケティングキャンペーンからApp Store上のアプリケーションに簡単にアクセスすることができます。 iTunesリンクの作成はシンプルで、単一のアプリ、すべてのアプリ、または指定した会社名の特定のアプリのいずれかに顧客を誘導することができます。

顧客を特定のアプリケーションに送信するには: http://itunes.com/apps/appname : http://itunes.com/apps/appname

あなたがApp Storeに持っているアプリのリストに顧客を送るには: http://itunes.com/apps/developername : http://itunes.com/apps/developername

あなたの会社名がURLに含まれている特定のアプリに顧客を送るには: http://itunes.com/apps/developername/appname : http://itunes.com/apps/developername/appname

その他の注意事項:

リダイレクトを避けるには、 http://itms://またはitms-apps://に置き換えることができitms-apps://

名前の付け方については、Apple QA1633:

https://developer.apple.com/library/content/qa/qa1633/_index.html

編集(2015年1月現在):

itunes.com/appsのリンクはappstore.com/appsに更新する必要があります。 上記のQA1633を更新しました。 新しいQA1629 、アプリからストアを起動するための手順とコードを示しています。

  1. コンピュータでiTunesを起動します。
  2. リンクするアイテムを検索します。
  3. iTunesでアイテムの名前を右クリックまたはControlキーを押しながらクリックし、ポップアップメニューから「iTunes Store URLをコピー」を選択します。
  4. あなたのアプリケーションでは、コピーされたiTunes URLを使ってNSURLオブジェクトを作成し、このオブジェクトをUIApplicationopenURL :メソッドにopenURLてApp Storeでアイテムを開きます。

サンプルコード:

NSString *iTunesLink = @"itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

スウィフト3.0

   let urlStr = "itms://itunes.apple.com/us/app/apple-store/id375380948?mt=8"
    if #available(iOS 10.0, *) {
        UIApplication.shared.open(URL(string: urlStr)!, options: [:], completionHandler: nil)

    } else {
        UIApplication.shared.openURL(URL(string: urlStr)!)
    }

Answer #5

あなたがApp Storeに直接アプリケーションを開くには、以下を使用する必要があります:

itms-apps:// ...

この方法では、まずiTunesに行くのではなく、App Storeを直接開いて(単にitms://を使用する)、App Storeアプリケーションをデバイスに直接開きます。

希望が役立ちます。

EDIT:APR、2017. itms-apps:// iOS10で実際に動作します。 私はそれをテストしました。

EDIT:APR、2013.これはiOS5以降では機能しなくなりました。 ちょうど使用する

https://itunes.apple.com/app/id378458261

それ以上のリダイレクトはありません。


Answer #6

いくつかの答えは 'itms'や 'itms-apps'を使うことを示唆していますが、この習慣はAppleによって特に推奨されていません。 彼らはApp Storeを開くための次の方法しか提供していません:

リスト1 iOSアプリケーションからApp Storeを起動する

NSString *iTunesLink = @"https://itunes.apple.com/us/app/apple-store/id375380948?mt=8";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];

この回答は、 https://developer.apple.com/library/ios/qa/qa1629/_index.html最終更新日2014年3月をhttps://developer.apple.com/library/ios/qa/qa1629/_index.html

iOS 6以上をサポートするアプリケーションの場合、AppleはApp Storeを提示するためのアプリ内メカニズムを提供しています: SKStoreProductViewController

- (void)loadProductWithParameters:(NSDictionary *)parameters completionBlock:(void (^)(BOOL result, NSError *error))block;

// Example:
SKStoreProductViewController* spvc = [[SKStoreProductViewController alloc] init];
spvc.delegate = self;
[spvc loadProductWithParameters:@{ SKStoreProductParameterITunesItemIdentifier : @(364709193) } completionBlock:^(BOOL result, NSError *error){ 
    if (error)
        // Show sorry
    else
        // Present spvc
}];

iOS6では、エラーがある場合、完了ブロックが呼び出されないことがあります。 これはiOS 7で解決されたバグのようです。


Answer #7

このコードはiOS上にApp Storeリンクを生成します

NSString *appName = [NSString stringWithString:[[[NSBundle mainBundle] infoDictionary]   objectForKey:@"CFBundleName"]];
NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-apps://itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]];

Macでitms-appsをhttpに置き換えてください:

NSURL *appStoreURL = [NSURL URLWithString:[NSString stringWithFormat:@"http:/itunes.com/app/%@",[appName stringByReplacingOccurrencesOfString:@" " withString:@""]]]; 

iOSのURLを開く:

[[UIApplication sharedApplication] openURL:appStoreURL];

マック:

[[NSWorkspace sharedWorkspace] openURL:appStoreURL];

Answer #8

これはAPP IDだけを使って私にとってはうまくいきました:

 NSString *urlString = [NSString stringWithFormat:@"http://itunes.apple.com/app/id%@",YOUR_APP_ID];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

リダイレクトの数はゼロです。


Answer #9

これはios5で動作し、直接リンクしています

NSString *iTunesLink = @"http://itunes.apple.com/app/baseball-stats-tracker-touch/id490256272?mt=8";  
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink]];


Answer #11

リダイレクトせずに直接リンクするには:

  1. 実際の直接リンクを取得するには、iTunesリンクメーカーhttp://itunes.apple.com/linkmaker/を使用してください
  2. http://itms-apps://置き換えitms-apps://
  3. [[UIApplication sharedApplication] openURL:url];リンクを開き[[UIApplication sharedApplication] openURL:url];

これらのリンクは、シミュレータではなく実際のデバイスでのみ動作することに注意してください。

出典: https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html : https://developer.apple.com/library/ios/#qa/qa2008/qa1629.html


Answer #12

私は、あなたがそれを提出する前にあなたがあなたのアプリのIDを取得する接続をiTunesでアプリを作成した場合、確認することができます。

したがって..

itms-apps://itunes.apple.com/app/id123456789

NSURL *appStoreURL = [NSURL URLWithString:@"itms-apps://itunes.apple.com/app/id123456789"];
    if ([[UIApplication sharedApplication]canOpenURL:appStoreURL])
        [[UIApplication sharedApplication]openURL:appStoreURL];

治療をする


Answer #13

素早く簡潔にするには:

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

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

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

これらはiOS 4.1で動作します

開発者のアプリケーションにリンクしたい場合、開発者の名前に句読点やスペース(例:Development Company、LLC)がある場合は、次のようにURLを作成します。

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

それ以外の場合は、iOS 4.3.3で「このリクエストは処理できません」を返します。


Answer #14

開発者のアプリケーションにリンクしたい場合、開発者の名前に句読点やスペース(例:Development Company、LLC)がある場合は、次のようにURLを作成します。

itms-apps://itunes.com/apps/DevelopmentCompanyLLC

それ以外の場合は、iOS 4.3.3で「このリクエストは処理できません」を返します。





app-store