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 lance directement dans l'application Téléphone (fermez l'application actuelle, ouvrez l'application Téléphone) .
serait-ce possible? Je sais que cela peut être fait pour passer des appels téléphoniques avec le lien URL tel, mais je souhaite plutôt que l'application Téléphone se lance sans appeler de numéro spécifique.
J'ai trouvé qu'il est facile d'écrire une application qui peut ouvrir une autre application.
Supposons que nous ayons deux applications appelées
FirstApp
etSecondApp
. Lorsque nous ouvrons la FirstApp, nous voulons pouvoir ouvrir la SecondApp en cliquant sur un bouton. La solution pour cela est:Dans SecondApp
Accédez au fichier plist de SecondApp et vous devez ajouter un schéma d' URL avec une chaîne iOSDevTips (bien sûr, vous pouvez écrire une autre chaîne, c'est à vous de décider).
2. Dans FirstApp
Créez un bouton avec l'action ci-dessous:
C'est tout. Maintenant, lorsque vous pouvez cliquer sur le bouton dans la FirstApp, cela devrait ouvrir SecondApp.
la source
Info.plist
laFirstApp
. Ajoutez ensuite les schémas que votre application souhaite ouvrir, dans ce cas, leItem 0
seraitiOSDevTips
LSApplicationQueriesSchemes
à son Info.plist pour pouvoir ouvrir SecondApp.La réponse Lee est absolument correcte pour iOS avant la version 8.
Dans iOS 9+, vous devez mettre sur liste blanche tous les schémas d'URL que votre application souhaite interroger dans Info.plist sous la clé LSApplicationQueriesSchemes (un tableau de chaînes):
la source
Dans Swift
Juste au cas où quelqu'un chercherait un copier-coller rapide de Swift.
la source
Afin de vous permettre d'ouvrir votre application à partir d'une autre, vous devrez apporter des modifications dans les deux applications. Voici les étapes d'utilisation de Swift 3 avec la mise à jour iOS 10 :
1. Enregistrez votre application que vous souhaitez ouvrir
Mettez à jour le
Info.plist
en définissant le schéma d'URL personnalisé et unique de votre application.Notez que le nom de votre schéma doit être unique, sinon si vous avez une autre application avec le même nom de schéma d'URL installée sur votre appareil, alors ce sera le runtime déterminé qui sera ouvert.
2. Incluez le schéma d'URL précédent dans votre application principale
Vous devrez spécifier le schéma d'URL que vous souhaitez que l'application puisse utiliser avec la
canOpenURL:
méthode de laUIApplication
classe. Ouvrez donc l'application principaleInfo.plist
et ajoutez le schéma d'URL de l'autre applicationLSApplicationQueriesSchemes
. (Introduit dans iOS 9.0)3. Implémentez l'action qui ouvre votre application
Maintenant, tout est configuré, vous êtes donc prêt à écrire votre code dans votre application principale qui ouvre votre autre application. Cela devrait ressembler à ceci:
Notez que ces modifications nécessitent une nouvelle version si vous souhaitez que votre application existante (installée à partir de l'AppStore) s'ouvre. Si vous souhaitez ouvrir une application que vous avez déjà publiée sur Apple AppStore, vous devez d'abord télécharger une nouvelle version qui inclut l'enregistrement de votre schéma d'URL.
la source
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é les schémas d'URL .
la source
Pour y parvenir, nous devons ajouter quelques lignes de code dans les deux applications
Application A: que vous souhaitez ouvrir à partir d'une autre application. (La source)
App B : à partir de l'application B, vous souhaitez ouvrir l' application A (destination)
Code pour l' application A
Ajoutez quelques balises dans le Plist de l' application A Open Plist Source de l'application A et Past sous XML
Dans l'application déléguée de l' application A - Obtenez un rappel ici
Arrive maintenant au code de l' application B -
Si vous souhaitez simplement ouvrir l'application A sans aucun paramètre d'entrée
Si vous souhaitez passer le paramètre de l' application B à l' application A, utilisez le code ci-dessous
Remarque: vous pouvez également ouvrir l'application en tapant simplement testApp.linking: //? sur le navigateur safari
la source
Essayez le code suivant qui vous aidera à lancer une application à partir de votre application
Remarque: remplacez le nom fantacy par le nom réel de l'application
la source
Vous ne pouvez lancer que des applications qui ont enregistré un schéma d'URL. Ensuite, tout comme vous ouvrez l'application SMS en utilisant sms :, vous serez en mesure d'ouvrir l'application en utilisant leur schéma d'URL.
Il existe un très bon exemple disponible dans la documentation appelé LaunchMe qui le démontre.
Exemple de code LaunchMe au 6 novembre 2017.
la source
Non ce n'est pas. Outre les gestionnaires d'URL documentés, il n'y a aucun moyen de communiquer avec / lancer une autre application.
la source
J'ai également essayé cela il y a quelque temps ( Lancer l'application iPhone avec identificateur ), mais il n'y a certainement pas de moyen DOCUMENTÉ de le faire. :)
la source
Dans Swift 4.1 et Xcode 9.4.1
J'ai deux applications 1) PageViewControllerExample et 2) DelegateExample. Maintenant, je veux ouvrir l'application DelegateExample avec l'application PageViewControllerExample. Lorsque je clique sur le bouton Ouvrir dans PageViewControllerExample, l'application DelegateExample sera ouverte.
Pour cela, nous devons apporter des modifications aux fichiers .plist pour les deux applications.
Étape 1
Dans l'application DelegateExample, ouvrez le fichier .plist et ajoutez des types d'URL et des schémas d'URL. Ici, nous devons ajouter notre nom requis comme "myapp".
Étape 2
Dans l'application PageViewControllerExample, ouvrez le fichier .plist et ajoutez ce code
Maintenant, nous pouvons ouvrir l'application DelegateExample lorsque nous cliquons sur le bouton dans PageViewControllerExample.
la source
Un petit mot sur ce sujet ...
Il existe une limite de 50 demandes pour les protocoles qui ne sont pas enregistrés.
Dans cette discussion, Apple mentionne que pour une version spécifique d'une application, vous ne pouvez interroger
canOpenUrl
qu'un nombre limité de fois et échouera après 50 appels pour des projets non déclarés . J'ai également vu que si le protocole est ajouté une fois que vous êtes entré dans cet état d'échec, il échouera toujours.Soyez conscient de cela, pourrait être utile à quelqu'un.
la source
Swift 3 version rapide et collée de @ villy393 réponse pour:
la source