2010-09-27 5 views
15

Je suis dans cette situation où je dois afficher un bouton qui dit "Ouvrir myApp" (si myApp est installé sur l'appareil) ou "Download myApp" (si myApp est pas installé sur l'appareil) dans une application iphone. Pour ce faire, je dois détecter si une application (avec une URL personnalisée connue) a été installée sur l'appareil. Comment puis-je faire ceci? Merci d'avance.Détecter par programme si une application est installée sur l'iPhone

Répondre

32

MISE À JOUR 8 janvier 2014 - 3 choses que vous pouvez faire

J'ai dû le faire pour un client nouveau. Ils voulaient que les utilisateurs puissent ouvrir leur deuxième application à partir de l'application principale si celle-ci avait été installée.

Ceci est ma conclusion. Utilisez la méthode canOpenURL pour vérifier si une application est installée ou/puis utilisez la méthode openURL pour

  1. Ouvrez l'application installée sur l'appareil iOS
  2. l'utilisateur vers l'App Store les pointant directement à l'application/votre liste des applications développeur
  3. Prenez-les à un site Web au lieu

Tous les échantillons de code disponibles pour chaque scénario

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

    } 
} 

Choisissez une option, je viens de vous gâter avec choix. Choisissez celui qui correspond à vos besoins. Dans mon cas, j'ai dû utiliser les trois options dans différents domaines du programme.

+0

Le plist ne se trouve pas dans iOS 4. savez-vous où at-il été déplacé à? – samwize

+0

Salut, désolé pour la réponse tardive. Aucun problème. Le fichier se trouve dans le dossier '/ private/var/mobile/Library/Caches /'. J'espère que cela pourra aider. Cheers – Pavan

+0

C'est le chemin dans le commutateur 2. Mais le fichier n'est pas trouvé (sur iOS 4.3). – samwize

19

Si le schéma d'URL pour votre application est "myapp:", puis

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

(Nécessite iOS 3.0.)

+0

Beaucoup plus simple! Merci! – bkbeachlabs

+0

@bkbeachlabs beaucoup plus simple par rapport à quoi? – Pavan

+0

J'ai dû faire référence à une modification antérieure sur une autre réponse. Il y a très longtemps maintenant, donc je ne m'en souviens plus! – bkbeachlabs

0

Vous pouvez ajouter simple balise meta dans la tête d'une page qui a besoin cette application reniflant.

Pour plus d'informations, rendez-vous ici:

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

+1

Peut-être, résumant le contenu de votre URL dans votre message aiderait l'utilisateur plus que juste poster un lien. Autre que ça, bon travail sur ton premier post :-). –

5

Pour vérifier l'application est d'installer dans l'appareil ou non

1) Dans info.plist ajouter LSApplicationQueriesSchemes comme exemple ci-dessous

enter image description here

2) et dans les types d'URL

enter image description here

3) Maintenant, pour vérifier l'application est d'installer ou non

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