Déterminer si une application existe et lancer l'application sur iOS
Est-il un moyen de vérifier iOS pour voir si une autre application a été installé et lancé? Si la mémoire me sert, ce n'était pas possible dans les premières versions, mais cela a été changé?
- Je pense que cela doit être possible en quelque sorte - je dis ça parce que le Facebook SDK mise en œuvre permettra de lancer le Facebook app si installé sinon il se replie sur Safari. Vous avez besoin de savoir quelques infos à propos de l'application d'autres, parce qu'avec Facebook, vous devez ajouter des informations d'enregistrement de votre propre application.
- Oui, je suppose que si vous savez l'identificateur d'application que vous pouvez vérifier et de le démarrer en quelque sorte. Mais je ne trouve pas de référence à la présente. J'espérais que quelqu'un a essayé ce.
- Assez facile, par exemple: NSURL *urlApp = [NSURL URLWithString:@fb://"]; BOOL canOpenFBApp = [[UIApplication sharedApplication] canOpenURL:urlApp]; printf("\n canOpenFBApp:%i \n",canOpenFBApp);
Vous devez vous connecter pour publier un commentaire.
Faisable, mais difficile.
De lancer les applications installées, comme le FB ou Twitter apps, est fait en utilisant l'URL Personnalisée Régime. Ceux-ci peuvent être utilisés à la fois dans d'autres applications, ainsi que sur les sites web.
Voici un article sur comment faire cela avec votre propre application.
Voir si l'URL est là, cependant, peut être difficile. Un bon exemple d'une application qui détecte les applications installées est Wagon de marchandises. La chose ici est que le Wagon a une connaissance avancée de l'URL personnalisée de l'. Je suis assez (99%) qu'il y ait un
canOpenURL:
, afin de connaître le modèle personnalisé de l'application que vous souhaitez cibler à l'avance du temps rend ce simple à mettre en œuvre.Voici une liste partielle de certains des plus populaires URL vous pouvez vérifier contre.
Mais si vous souhaitez rechercher des applications et d'en déduire leur URL, il ne peut pas être fait sur un non-JB appareil.
Voici un post de blog parler de la façon dont les gens à Bosse géré le problème.
Il y a un script comme suit.
L'appel de ce script à partir du web (
<a href="#" onclick="startMyApp()">Try to start MyApp</a>
), vous pouvez déterminer si votre application avec le schéma "yourAppScheme" est installé sur l'appareil ou pas.L'Application va lancer si il est installé sur l'appareil et "yourAppScheme" est enregistré.
Si l'application n'est pas installée, vous pouvez suggérer à l'utilisateur d'installer cette application sur iTunes.
document.location
) JS doit arrêter l'exécution, de sorte que la fonction desetTimeout
doit jamais être exécutée. Pas que je sache une meilleure façon (sauf iOS Smart App Banners sont en nombre suffisant pour vos besoins). Aimerais avoir tort.Pour vérifier si une application est installée (par exemple, Claire):
Pour ouvrir l'application:
Masque le message d'erreur si l'application n'est pas installée
À Branche nous utilisons une forme de code ci-dessous: à noter que l'iframe fonctionne sur plusieurs navigateurs. Il vous suffit de remplacer dans votre URI de l'application et de votre App Store lien.
Il y a une deuxième possibilité qui s'appuie sur des témoins de la première et de la redirection javascript seulement comme une solution de repli. Voici la logique:
Lorsqu'un utilisateur sans l'application d'abord appuie sur un lien vers votre application, il est redirigé directement vers l'App Store. Ceci est accompli par un lien vers votre application fait d'être un générées dynamiquement la page sur vos serveurs avec la redirection. Vous créer un cookie, et le journal d'une "empreinte digitale" de l'adresse IP, système d'exploitation, la version d'OS, etc. sur votre backend.
Lorsque l'utilisateur installe l'application et l'ouvre, vous de collecter et d'envoyer un autre "l'empreinte digitale" de votre back-end. Maintenant, votre backend sait le lien est installé Sur toutes les visites subséquentes liens associés à votre application, vos serveurs assurez-vous que le générées dynamiquement page de redirection conduit à l'application, et non sur l'App Store, sur la base du cookie envoyé avec la demande.
Cela évite le laid de redirection, mais il implique beaucoup plus de travail.
appname
ou laappID
?À ma connaissance, en raison de problèmes de confidentialité, vous ne pouvez pas voir si une application est installée sur le périphérique. Le moyen de contourner cela est d'essayer et lancer l'application, et si il ne se lance pas à l'utilisateur de frapper la chute en arrière de l'url. Pour éviter le mobile safari erreur ne se produise, j'ai trouvé que de le placer dans un iframe aide à résoudre le problème.
Voici un extrait de code que j'ai utilisé.
J'ai du mal avec cette récemment, et voici la solution que j'ai trouvé. Notez qu'il n'y a toujours pas de moyen infaillible pour détecter si l'application a lancé ou pas.
- Je faire une page à partir de mon serveur qui redirige vers un iPhone-variante spécifique à la détection de l'Agent Utilisateur. Les liens de cette page ne peuvent être partagés via e-mail /SMS ou Facebook.
Affiche la page d'une version minimale du document de référence, mais alors automatiquement essaie d'ouvrir l'application dès qu'il charge, à l'aide d'un hidden <iframe> (AJAX échoue toujours dans cette situation -- vous ne pouvez pas utiliser jQuery ou XMLHttpRequest pour cela).
Si le schéma d'URL est enregistré, l'application s'ouvre et l'utilisateur sera en mesure de faire tout ce dont ils ont besoin. De toute façon, la page affiche un message comme celui-ci dans le bas: "Ne du lancement de l'application? Si non, vous n'avez probablement pas installé, mais .... "avec un lien vers le magasin.