2017-07-13 4 views
0

J'ai déjà lu à propos de UIApplication.shared.canOpenURL. Mais dans mon cas, ça ne marche pas. J'ai un schéma:Echec de la vérification de l'installation d'une application iOS

enter image description here

Si j'ai VK app installé, les travaux d'URL vk:// et Safari me demande avec succès si je veux ouvrir cette application. À cette étape, canOpenURL renvoie true.

Si l'application n'est pas installée, Safari indique que l'URL n'est pas valide. Mais canOpenURL renvoie toujours true.

Que se passe-t-il? Est-ce que canOpenURL vérifie uniquement la syntaxe de l'URL? Alors comment dois-je vérifier si l'application est installée?

+0

Selon Docs d'Apple sur 'canOpenURL:' 'le système teste le schéma de l'URL pour déterminer si est une application installée qui est enregistrée pour gérer le système. » Est-il possible qu'une autre application soit enregistrée avec ce système? – Peter

+0

Avez-vous ajouté l'URL à la clé 'LSApplicationQueriesSchemes'? Cela ne semble pas être ce que vous avez montré dans la capture d'écran. – Paulw11

+0

@Peter, en effet! Il y avait quelque chose d'animal! Dans 'URL Types', dans le champ' URL Schemes', il y avait un 'vk' stroke, séparé par une virgule, bien que je me souvienne exactement, que je ne l'ai pas écrit: D. J'ai supprimé 'vk', vérifié sans elle, et cela fonctionne! –

Répondre

0

Pour l'application ouverte du plus profond de vous associer devez également écrire quelques lignes de code pour schéma et URL ::

 let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil) 

    if(url.absoluteString == "appname://app/https://appurl"){ 
     let defaults = NSUserDefaults.standardUserDefaults() 
     if defaults.objectForKey("access_token") != nil { 
     // check condition what you want for open specific page 
     } 
     else{ 
      let loginVC: LoginViewController = mainStoryboard.instantiateViewControllerWithIdentifier("LoginViewController") as! LoginViewController 
      self.window?.rootViewController = loginVC 
     } 
    } 
    self.window?.makeKeyAndVisible()