Je ne sais pas comment vérifier si l'application est installée ou non sur le téléphone! Ou, lorsque l'application est installée, ouvrez l'application, sinon ouvrez le lien Appstore pour télécharger l'application. J'utilise Swift 3 . Je veux le faire en utilisant nom de l'application ou identifiant de l'ensemble . Merci!
func openApp(appName:String) {
let appName = "instagram"
let appScheme = "/(appName)://app"
let appUrl = URL(string: appScheme)
if UIApplication.shared.canOpenURL(appUrl! as URL)
{
UIApplication.shared.open(appUrl!)
} else {
print("App not installed")
}
}
Entre les autres réponses et leurs commentaires, j'ai l'impression que le demandeur veut être capable de voir si une application donnée est installée.
À partir de iOS 9.0, cela n’est pas possible.
Les applications pour iOS 9 et versions ultérieures doivent avoir une liste des modèles d'URL demandés dans Info.plist avant de pouvoir utiliser canOpenURL:
. Ceci afin de protéger la vie privée des utilisateurs, car les annonceurs ont abusé de cette fonctionnalité de manière invasive. (Voir cet excellent article pour plus de détails sur ces changements.)
Bien entendu, cette liste est statique et ne peut pas être modifiée après la génération ou l'envoi à l'App Store. Si Apple n'aime pas ceux que vous avez choisis, ils ont parfaitement le droit de le refuser.
Je crains que ce que vous demandez ne soit pas possible dans la mesure du possible pour iOS 9.0 et les versions ultérieures.
Edit: Je tiens également à préciser que le schéma d'URL d'une application ne correspond pas nécessairement à son nom. (Il s’agit plus d’une constante mal nommée que d’une question fonctionnelle.) Il existait auparavant une liste géante de schémas d’URI connus avec une documentation pour chacun, mais de manière assez poignante et appropriée, il semble que le wiki qui l’héberge a été fermé .
Cela a fonctionné pour moi (Swift 3.0)
Ci-dessous deux entrées doivent être fournies:
<APP URL SCEHME>
: le schéma d'URL de l'application que vous souhaitez ouvrir<YOUR APP URL>
: l'URL iTunes de l'application
func openApp() {
let appURL = NSURL(string: "<APP URL SCHEME>")
if UIApplication.shared.canOpenURL(appURL as! URL) {
print("Opening App...")
}else {
UIApplication.shared.openURL(NSURL(string: "<YOUR APP URL>")! as URL)
}
}
Swift 4.1. Un développeur peut avoir plusieurs applications sur l'AppStore. Donc, je dois vérifier si l'utilisateur a installé d'autres applications ou non par le même développeur. J'ai eu le Bundle ID d'autres applications. Bien que vous puissiez utiliser Appname au lieu de Bundle Id. J'ai donc suivi les étapes suivantes.
Dans votre application actuelle, ajoutez la clé LSApplicationQueriesSchemes de type Array dans votre fichier info.plist. Saisissez l’identifiant du bundle ou le nom de l’application de l’application que vous souhaitez ouvrir à partir de votre application.
Les autres applications doivent avoir leur identifiant de bundle ou leur entrée Appname dans ce schéma d'URL d'application.
let app = UIApplication.shared let bundleID = "some.Bundle.Id://" if app.canOpenURL(URL(string: bundleID)!) { print("App is install and can be opened") let url = URL(string:bundleID)! if #available(iOS 10.0, *) { UIApplication.shared.open(url, options: [:], completionHandler: nil) } else { UIApplication.shared.openURL(url) } } else { print("App in not installed. Go to AppStore") }
URL_scheme:// or Bundle_Id://
Si l'application est installée, elle affichera une alerte avec Appname pour l'ouvrir dans l'application.
allez tout d'abord sur info.plist, ajoutez LSApplicationQueriesSchemes, ajoutez un élément et placez instagram sur cet élément. Maintenant, ce code fonctionnera parfaitement.
let appName = "instagram"
let appScheme = "\(appName)://"
let appUrl = URL(string: appScheme)
if UIApplication.shared.canOpenURL(appUrl! as URL)
{
UIApplication.shared.open(appUrl!)
} else {
print("App not installed")
}