769 Stimmen

Verknüpfung mit Anwendungen im App Store

Ich bin dabei, eine kostenlose Version meines iPhone-Spiels zu erstellen. Ich möchte eine Schaltfläche in der kostenlosen Version haben, die die Besucher zur kostenpflichtigen Version im App Store führt. Wenn ich einen Standard-Link verwende

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

öffnet das iPhone zuerst Safari und dann den App Store. Ich habe andere Apps verwendet, die den App-Store direkt öffnen, daher weiß ich, dass es möglich ist.

Irgendwelche Ideen? Wie lautet das URL-Schema für den App Store?

822voto

Nathan S. Punkte 5169

Bearbeitet am 2016-02-02

Beginnend mit iOS 6 SKStoreProductViewController Klasse wurde eingeführt. Sie können eine App verlinken, ohne Ihre App zu verlassen. Codeschnipsel in Swift 3.x/2.x y Objektiv-C es aquí .

A SKStoreProductViewController Objekt stellt einen Speicher dar, mit dem die Benutzer andere Medien aus dem App Store kaufen kann. Zum Beispiel, Ihre App den Store anzeigen, damit der Benutzer eine andere App kaufen kann.


Von Neuigkeiten und Ankündigungen für Apple-Entwickler .

Leiten Sie Kunden direkt zu Ihrer App im App Store mit iTunes-Links Mit iTunes-Links können Sie Ihre Kunden eine einfache Möglichkeit, auf Ihre Ihre Apps im App Store direkt von Ihrer von Ihrer Website oder Ihren Marketing Kampagnen. Das Erstellen eines iTunes-Links ist einfach und kann Kunden entweder zu einer Kunden entweder zu einer einzelnen App, zu allen alle Ihre Apps oder zu einer bestimmten App mit Ihrem Firmennamen verweist.

So senden Sie Kunden zu einem bestimmten Anwendung: http://itunes.com/apps/appname

Zum Senden Kunden zu einer Liste von Apps, die Sie im App Store haben: http://itunes.com/apps/developername

Um Kunden zu einer bestimmten App zu schicken mit Ihrem Firmennamen in der URL: http://itunes.com/apps/developername/appname


Zusätzliche Hinweise:

Sie können ersetzen http:// avec itms:// o itms-apps:// um Weiterleitungen zu vermeiden.

Bitte beachten Sie dass itms:// schickt den Benutzer zum iTunes-Store y itms-apps:// mit der Übermittlung an die App Store!

Informationen zur Namensgebung finden Sie in Apple QA1633:

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

Bearbeiten (Stand: Januar 2015):

itunes.com/apps-Links sollten auf appstore.com/apps aktualisiert werden. Siehe QA1633 oben, die aktualisiert wurde. Eine neue QA1629 schlägt diese Schritte und den Code zum Starten des Stores aus einer App vor:

  1. Starten Sie iTunes auf Ihrem Computer.
  2. Suchen Sie nach dem Artikel, den Sie verlinken möchten.
  3. Klicken Sie mit der rechten Maustaste oder bei gedrückter Ctrl-Taste auf den Namen des Objekts in iTunes und wählen Sie dann "iTunes Store-URL kopieren" aus dem Popup-Menü.
  4. Erstellen Sie in Ihrer Anwendung eine NSURL Objekt mit der kopierten iTunes-URL und übergeben Sie dieses Objekt dann an UIApplication ' s openURL : Methode zum Öffnen Ihres Artikels im App Store.

Beispiel-Code:

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

iOS10+:

 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iTunesLink] options:@{} completionHandler:nil];

Swift 4.2

   let urlStr = "itms-apps://itunes.apple.com/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)!)
    }

373voto

GeneCode Punkte 7256

Wenn Sie eine App direkt im App Store öffnen möchten, sollten Sie dies tun:

itms-apps://...

Auf diese Weise wird direkt die App Store-App auf dem Gerät geöffnet, anstatt zuerst iTunes und dann nur den App Store zu öffnen (wenn nur itms:// verwendet wird).

Ich hoffe, das hilft.


EDIT: APR, 2017. itms-apps:// funktioniert tatsächlich wieder in iOS10. Ich habe es getestet.

EDIT: APR, 2013. Dies funktioniert nicht mehr in iOS5 und höher. Verwenden Sie einfach

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

und es gibt keine Umleitungen mehr.

63voto

Ramis Punkte 10640

Ab iOS 6 kann man das richtig machen, indem man SKStoreProductViewController Klasse.

Swift 5.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)
        }
    }
}
private func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
    viewController.dismiss(animated: true, completion: nil)
}
// Usage:
openStoreProductWithiTunesItemIdentifier("1234567")

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")

Sie können die itunes-Artikelkennung der Anwendung wie folgt abrufen: (anstelle einer statischen Kennung)

Swift 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")

objective-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];
}

Sie erhalten kAppITunesItemIdentifier (die itunes-Artikelkennung der Anwendung) wie folgt: (anstelle einer statischen Kennung)

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]];

43voto

Dev01 Punkte 12109

Apple hat gerade die appstore.com-URLs angekündigt.

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

Es gibt drei Arten von App Store Short Links, in zwei Formen, eine für iOS Apps, eine andere für Mac Apps:

Name des Unternehmens

iOS: http://appstore.com/ zum Beispiel, http://appstore.com/apple

Mac: http://appstore.com/mac/ zum Beispiel, http://appstore.com/mac/apple

App Name

iOS: http://appstore.com/ zum Beispiel, http://appstore.com/keynote

Mac: http://appstore.com/mac/ zum Beispiel, http://appstore.com/mac/keynote

App nach Unternehmen

iOS: http://appstore.com/ / zum Beispiel, http://appstore.com/apple/keynote

Mac: http://appstore.com/mac/ / zum Beispiel, http://appstore.com/mac/apple/keynote

Die meisten Unternehmen und Anwendungen haben einen kanonischen App Store Short Link. Diese kanonische URL wird durch Ändern oder Entfernen bestimmter Zeichen erstellt (von denen viele illegal sind oder eine besondere Bedeutung in einer URL haben (z. B. "&")).

Um einen App Store Short Link zu erstellen, wenden Sie die folgenden Regeln auf Ihren Unternehmens- oder App-Namen an:

Alle Leerzeichen entfernen

Alle Zeichen in Kleinbuchstaben umwandeln

Entfernen Sie alle Symbole für Copyright (©), Warenzeichen (™) und eingetragene Marken (®).

Ersetzen Sie Ampersands ("&") durch "und".

Entfernen Sie die meisten Satzzeichen (siehe Listing 2 für den Satz)

Ersetzen Sie akzentuierte und andere "verzierte" Zeichen (ü, å, etc.) durch ihre Grundzeichen (u, a, etc.)

Lassen Sie alle anderen Zeichen so, wie sie sind.

Listing 2 Interpunktionszeichen, die entfernt werden müssen.

!¡"#$%'()*+,-./:;<=>¿?@[]^_`{|}~

Im Folgenden finden Sie einige Beispiele, die die Umwandlung verdeutlichen.

App-Store

Beispiele für Firmennamen

Gameloft => http://appstore.com/gameloft

Activision Publishing, Inc. => http://appstore.com/activisionpublishinginc

Chen's Fotografie & Software => http://appstore.com/chensphotographyandsoftware

App Name Beispiele

Ocarina => http://appstore.com/ocarina

Wo ist mein Perry? => http://appstore.com/wheresmyperry

Brain Challenge™ => http://appstore.com/brainchallenge

42voto

Fattie Punkte 34702

Ab Sommer 2015 ...

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

id1234567890" durch "id" und "Ihre zehnstellige Nummer" ersetzen

  1. Dies funktioniert perfekt bei alle Geräte .

  2. Es geht direkt zu den App-Store, keine Weiterleitungen.

  3. Ist OK für alle nationale Läden .

  4. Es stimmt, Sie sollten Übergang zur Verwendung loadProductWithParameters , けど wenn der Zweck des Links darin besteht, die App, in der Sie sich gerade befinden, zu aktualisieren: es ist möglicherweise besser, diesen "altmodischen" Ansatz zu verwenden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X