2017-05-02 5 views
0

J'ai un lien vers mon facebook, sur mon site, qui s'ouvre dans le navigateur du téléphone.Facebook page non ouverte dans l'application swift 3

Je voudrais l'ouvrir dans l'application facebook par défaut, si l'application est installée.

J'ai essayé de mettre ce code mais cela ne fonctionne pas. Ouvre la page facebook toujours et uniquement via safari et non via l'application facebook. Si vous pouvez m'aider s'il vous plaît.

@IBAction func supporto(_ sender: UIBarButtonItem) { 
    let Username = "831831923611308" 
    let appURL = NSURL(string: "fb://profile/\(Username)")! 
    let webURL = NSURL(string: "https://facebook.com/\(Username)")! 
    let application = UIApplication.shared 

    if application.canOpenURL(appURL as URL) { 

     if #available(iOS 10.0, *) { 
      application.open(appURL as URL) 
     } else { 
      // Fallback on earlier versions 
     } 
    } else { 
     if #available(iOS 10.0, *) { 
      application.open(webURL as URL) 
     } else { 
      // Fallback on earlier versions 
     } 

    } 

    } 

My info.plist

This is error in console

+0

Pouvez-vous confirmer que le tableau 'LSApplicationQueriesSchemes' est dans' Info.plist' et pas un autre plist? Aussi que vous avez essayé de nettoyer et reconstruire (commande + Maj + K, et commande + B) –

+0

Envisager de changer 'NSURL (_)' à 'URL (_)' et en supprimant 'comme URL' plus tard dans le code –

+0

oui ... est dans Info.plist –

Répondre

1

Je peux confirmer que le code que vous utilisez fonctionne. Je l'ai placé dans un nouveau projet, installé sur mon téléphone, et définissez les Info.plist valeurs comme suit:

Info.plist

Mon code est le suivant: enter image description here

Il y a quelques raisons pour lesquelles votre le code n'a peut-être pas fonctionné.

  • Vous devrez peut-être nettoyer et reconstruire votre projet pour vous assurer que vos changements de charge Info.plist.
  • Vous devrez peut-être vérifier que vous avez ajouté LSApplicationQueriesSchemes à Info.plist et que cela correspond à la configuration de l'application à charger.
  • Vous devez exécuter ceci sur un périphérique réel car votre simulateur ne devrait pas avoir installé Facebook.
  • Vérifiez que Facebook est installé et à jour.
  • Assurez-vous que vous utilisez la version la plus récente de Xcode et iOS.
  • Si tout le reste échoue, supprimez l'application et reconstruisez-la et réinstallez-la.

Vous pouvez vérifier que votre Info.plist est en train de charger correctement les schémas Requêtes en allant à l'onglet Infos de l'éditeur de projet et cherchent à faire en sorte que LSApplicationQueriesSchemes est là avec les options spécifiées:

enter image description here

+0

Je suis assez sûr que votre problème réside dans les paramètres 'LSApplicationQueriesSchemes'. –

+0

J'avais changé le mauvais Info.plist. Je suis vraiment stupide. :(merci pour le soutien –

+0

Bienvenue! Il arrive au meilleur de nous –

1

Si vous appelez la méthode "canOpenURL" sur une URL qui ne figure pas dans votre liste blanche , elle renverra "NO", même si une application est installée et que s'est enregistrée pour gérer ce schéma. A "Cette application n'est pas autorisée à requête pour le schéma xxx" Syslog entrée apparaîtra.

Si vous appelez la méthode "openURL" sur une URL qui ne figure pas dans votre liste blanche , elle échoue en mode silencieux. A "Cette application n'est pas autorisée à interroger pour le schéma xxx" L'entrée syslog apparaîtra.

Donc vous devez mettre fb dans LSApplicationQueriesSchemes dans votre info.plist