Domanda

Ho usato diverse app ora che lanciano l'archivio iTunes direttamente dall'app. Ne sto usando anche alcuni sul mio iPod 2G 2.1.

So che c'è un bug in 2.1 che impedisce ai link di appstore di funzionare in Safari, ma in qualche modo le persone stanno lanciando l'app-store direttamente, nemmeno attraverso Safari.

Come si fa? È una funzionalità openURL non documentata?

È stato utile?

Soluzione

Da iTunes, trascina l'icona della tua app sul desktop, questo ti darà un link che puoi usare direttamente (ad esempio, http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=284036524&mt=8 avvia AppStore in parole incrociate, sia su desktop che su desktop un iPhone).

Inseriscilo in un NSURL e chiama openURL su di esso.

Altri suggerimenti

Per essere estremamente concisi:

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

Se vuoi inviare a tutte le app per uno sviluppatore, usa

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

Funzionano con iOS 4.1

Vedi anche Come collegarsi alle app su app store

Ho capito come accedere direttamente alla pagina delle recensioni per un'app nell'App Store.

Fondamentalmente è fatto come di seguito, non esitate a leggere il mio blog post a riguardo.

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

Se vuoi mostrare i dettagli dell'applicazione invece delle recensioni, puoi usare l'URL in questo modo:

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

L'ho provato sul mio iPhone con iOS 6.1 e ti reindirizzeremo immediatamente all'app App Store.

Ben Gottlieb ha ragione, ma esiste un modo più veloce per ottenere l'URL: puoi fare clic con il pulsante destro del mouse su qualsiasi icona dell'applicazione in iTunes e selezionare " Copia l'URL di iTunes Store " ;.

Quindi chiama UIApplication openURL su di esso.

Assicurati che sia scritto " phobos.apple.com " e non " itunes.apple.com "

Il primo apre direttamente l'App Store, mentre il secondo aprirà prima MobileSafari, quindi l'App Store.

Puoi ottenere il tuo AppID da itunesconnect.apple.com " Gestisci le tue applicazioni "

Se non si desidera ottenere il collegamento per iTunes, è possibile farlo.

  1. seleziona la tua app in AppStore
  2. fai clic sul pulsante Dillo ad un amico in alto a destra.
  3. invia il link a te stesso

Ho avuto questo lavoro in un momento in cui il link di iTunes no.

Se si dispone di un collegamento di affiliazione e si desidera aprire ancora l'app App Store direttamente senza Safari nel mezzo, è possibile utilizzare un UIWebView nascosto o una connessione NSURLC. Per quest'ultimo vedi questo post http://gamesfromwithin.com/handling-app-store -e-LinkShare-links

Ecco il codice che uso e lo ho testato con le varie versioni di iOS menzionate. Ovviamente cambia l'ID cliente in modo che sia il tuo:

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

Se stai semplicemente rilasciando la tua app ... non avrai un "ID app #" " eppure ... quindi nessuno di questi metodi funzionerà.

Ho dovuto inserire un link "non funzionante" nella mia v1.0 ... e successivamente nel mio aggiornamento v1.1 ... aggiunto il link effettivo e il numero ID app.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top