Domanda

Sono in questa situazione dove devo visualizzare un pulsante che dice "Apri myApp" (se myApp è installato sul dispositivo) o si dice "Download myApp" (se myApp non è installato sul dispositivo) in un iPhone app. Per fare questo, ho bisogno di rilevare se un app (con un URL personalizzato noto) è stato installato sul dispositivo. Come posso fare questo? Grazie in anticipo.

È stato utile?

Soluzione

AGGIORNAMENTO 8 gennaio 2014 - 3 cose che puoi fare

Ho dovuto fare questo per un cliente nuovo. Volevano che gli utenti siano in grado di aprire la loro seconda applicazione da App principale se era stato installato.

Questa è la mia scoperta. Utilizzare il metodo canOpenURL per verificare se un'applicazione è installata o / e quindi utilizzare il metodo openURL a

  1. Aprire l'applicazione installata sul dispositivo iOS
  2. portare l'utente ad App Store di loro che punta direttamente alla APP / l'elenco delle applicazioni di sviluppo
  3. portarli ad un sito web invece

Tutti gli esempi di codice disponibili per ogni scenario

//Find out if the application has been installed on the iOS device
- (BOOL)isMyAppInstalled { 
    return [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"nameOfMyApp:"]]; 
} 

- (IBAction)openOrDownloadApp { 
    //This will return true if the app is installed on the iOS device
    if ([self myAppIsInstalled]){
        //Opens the application
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"nameOfMyApp:"]]; 
    } 
    else { //App is not installed so do one of following:

        //1. Take the user to the apple store so they can download the app
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/nameOfMyApp"]]; 

        //OR

        //2. Take the user to a list of applications from a developer
        //or company exclude all punctuation and space characters. 
        //for example 'Pavan's Apps'
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itms://itunes.com/apps/PavansApps"]];

        //OR

        //3. Take your users to a website instead, with maybe instructions/information
         [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://www.pavan.com/WhyTheHellDidTheAppNotOpen_what_now.html"]];

    } 
}

Scegli un'opzione, ho appena l'imbarazzo della scelta. Scegli quella che si adatta alle vostre esigenze. Nel mio caso ho dovuto utilizzare tutte e tre le opzioni in diverse aree del programma.

Altri suggerimenti

Se lo schema URL per la tua app è "myapp:", quindi

BOOL myAppInstalled = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"myapp:"]];

(Richiede iOS 3.0.)

Per controllare app è installato in un dispositivo o no

1) In LSApplicationQueriesSchemes add Info.plist come di seguito esempio

 entrare descrizione dell'immagine qui

2), in tipi di URL

 entrare descrizione dell'immagine qui

3) Ora di controllo applicazione è installare o no

- (IBAction)openAppPressed:(UIButton *)sender {
    NSString *urlString = @"XYZAPP://";
    NSURL *url = [NSURL URLWithString:urlString];

    if ([[UIApplication sharedApplication] canOpenURL:url]) {
        [[UIApplication sharedApplication] openURL:url];
    }
    else {
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"itunes link for download app"]];
    }
}

È possibile aggiungere una semplice meta tag nella testa di ogni pagina che ha bisogno di questo app-sniffing.

Per ulteriori informazioni, vai qui:

http://developer.apple .com / library / ios / # documentazione / AppleApplications / Reference / SafariWebContent / PromotingAppswithAppBanners / PromotingAppswithAppBanners.html

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