183 votes

Lancer une application à partir d'une autre (iPhone)

Est-il possible de lancer une application iPhone arbitraire à partir d'une autre application ? Par exemple dans mon application, si je veux que l'utilisateur appuie sur un bouton et se lance directement dans l'application Téléphone (fermer l'application en cours, ouvrir l'application Téléphone) .

Cela serait-il possible ? Je sais que cela peut être fait pour passer des appels téléphoniques avec le lien tel URL, mais je veux plutôt que l'application Téléphone se lance sans composer de numéro spécifique.

84voto

Gordon Wilson Points 14721

Comme le souligne Kevin, les schémas URL sont le seul moyen de communiquer entre les applications. Donc, non, il n'est pas possible de lancer des applications arbitraires.

Mais il est possible de lancer n'importe quelle application qui enregistre un schéma d'URL, que ce soit celui d'Apple, le vôtre ou celui d'un autre développeur. La documentation est ici :

Communiquer avec d'autres applications

Pour ce qui est du lancement du téléphone, on dirait que votre tel: Le lien doit comporter au moins trois chiffres avant que le téléphone ne soit lancé. Vous ne pouvez donc pas accéder à l'application sans composer un numéro.

81voto

lee Points 290

J'ai trouvé qu'il était facile d'écrire une application dans laquelle on peut ouvrir une autre application : FirstApp et SecondApp. Et quand nous nous trouvons dans la FirstApp, nous voulons ouvrir la SecondApp en cliquant sur un bouton. La solution est la suivante :

  1. Avec SecondApp

    dans le fichier plist de SecondApp nous devons ajouter un Schémas URL avec une chaîne iOSDevTips (bien sûr, vous pouvez écrire une autre chaîne de caractères, c'est vous qui décidez).

enter image description here

2 . Avec FirstApp

Il suffit de créer un bouton ayant l'action ci-dessous :

- (void)buttonPressed:(UIButton *)button
{
  NSString *customURL = @"iOSDevTips://";

  if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]])
  {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
  }
  else
  {
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"URL error"
                              message:[NSString stringWithFormat:@"No custom URL defined for %@", customURL]
                              delegate:self cancelButtonTitle:@"Ok" 
                              otherButtonTitles:nil];
    [alert show];
  }

}

C'est tout. Maintenant, vous pouvez cliquer sur le bouton dans la première application pour ouvrir la deuxième application.

11voto

Nickolas Points 388

Voici un bon tutoriel pour lancer une application à partir d'une autre application :
SDK iOS : Travailler avec des schémas d'URL
Et, il n'est pas possible de lancer une application arbitraire, mais les applications natives qui ont enregistré le fichier Schémas URL .

7voto

newgenapps_dev Points 23557

Vous ne pouvez lancer que des applications qui ont enregistré un schéma URL. Ainsi, tout comme vous ouvrez l'application SMS en utilisant sms :, vous pourrez ouvrir l'application en utilisant son schéma URL.

Il y a un très bon exemple disponible dans les docs appelé LaunchMe qui démontre ceci.

4voto

Kevin Ballard Points 88866

Non, ça ne l'est pas. En dehors des gestionnaires d'URL documentés, il n'y a aucun moyen de communiquer avec/de lancer une autre application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X