2017-02-05 1 views
1

Je crée une application de construction de téléphone qui contient un login facebook. Voici quelques détails. - L'application a Connectez-vous avec le bouton facebookPhonegap Construire cordova-plugin-facebook4 plugin ne fonctionne pas sur iOS

  • Il utilise le plugin-facebook4 cordova-plugin (https://www.npmjs.com/package/cordova-plugin-facebook4)

  • Le code d'intégration est ci-dessous:

    facebookConnectPlugin.login(["public_profile"], 
    function(userData) { 
    alert("login"); 
    //fetch user info using graph api 
    facebookConnectPlugin.api("me/?fields=id,name,email,gender", ["email","public_profile"], 
    function (result) { 
    alert("login success"); 
    //store access token in local storage 
    facebookConnectPlugin.getAccessToken(function(token) { 
    console.log("Token: " + token); 
    }); 
    }, 
    function (error) { 
    alert("Failed: " + error); 
    }); 
    }, function(error){alert("error");} 
    ); 
    
  • Le code ci-dessus fonctionne bien pour l'application Android.

- Le code ci-dessus ne fonctionne pas dans iOS app

appareil utilisé pour le test: IPad mini iOS version 10.x


Sur developer.facebook.com, les paramètres de l'application pour la plate-forme iOS sont les suivantes:

Bundle ID: même valeur que id widget dans config.xml pour PhoneGap

id magasin iPhone: vide

suffixe système url: vide

id magasin ipad: vide

Single Sign On bascule: OUI


Ci-dessous le comportement actuel pour iOS iPad: 1. L'utilisateur clique sur Connexion avec Facebook dans l'application iOS 2. L'utilisateur est pris aux autorisations facebook page dans le navigateur Safari 3. L'utilisateur entre l'ID utilisateur et mot de passe 4. L'utilisateur est demandé l'autorisation et l'utilisateur clique sur « Confirmer » 5. Safari affiche une fenêtre demandant « Open in App? » 6. Clics de l'utilisateur Ouvrir 7. L'utilisateur est redirigé vers la même application et la même page et affiche le même lien de connexion.

Notez que le contrôle ne soit pas repassé à poursuivre le script du tout, il est presque que l'application a été relancée depuis le début.

L'inspecteur Web Safari ne montre aucune erreur.

GapDebug sur mac (je suis en utilisant une version de VirtualBox Yosemite mac) ne montre aucune erreur.

S'il vous plaît aider car je ne suis pas très sûr à ce stade, quoi d'autre me manque.

Répondre

0

Je sais qu'il est tard pour répondre à cette question, mais il pourrait aider d'autres à résoudre ce problème. Donc, voici la solution

<meta http-equiv="Content-Security-Policy" content="default-src * gap://ready; style-src 'self' 'unsafe-inline'; img-src 'self' data:; script-src * 'unsafe-inline' 'unsafe-eval'"> 

Ajoutez cela dans l'index.html.écart: // prêt est requis pour iOS 10

+0

Ne fonctionne pas mec, y at-il une autre étape? – Sopo