2017-02-05 6 views
1

Ich erstelle eine Phonegap-Build-App, die einen Facebook-Login enthält. Unten sind einige Details. - Die App verfügt über eine Anmeldung mit Facebook-TastePhonegap Build cordova-plugin-facebook4 plugin funktioniert nicht unter iOS

  • Es verwendet cordova-plugin-facebook4 Plugin (https://www.npmjs.com/package/cordova-plugin-facebook4)

  • Die Code-Integration ist unter:

    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");} 
    ); 
    
  • Der obige Code funktioniert gut für auf der Android App.

- Der obige Code funktioniert nicht in iOS-App

Gerät zum Testen verwendet: IPad mini iOS Version 10.x


Auf developer.facebook.com sind die App-Einstellungen für iOS-Plattform wie folgt:

Bundle-ID: gleicher Wert wie Widget-ID in config.xml für phonegap

iPhone store-ID: leer

uRL-Schema Suffix: leer

ipad Speicher-ID: leer

Single Sign On Knebel: JA


Im Folgenden finden Sie das aktuelle Verhalten für iOS iPad: 1. Der Benutzer klickt auf Login mit Facebook in der iOS-App 2. Benutzer auf Facebook Berechtigungen Seite in Safari Browser genommen 3. Benutzer gibt Benutzer-ID und Passwort ein 4. Benutzer wird um Erlaubnis gefragt und Benutzer klickt auf "Bestätigen" 5. Safari zeigt ein Popup mit der Frage "Open in App?" 6. Benutzer klickt auf Öffnen 7. Benutzer wird zu derselben App und derselben Seite geleitet und zeigt denselben Login-Link an.

Beachten Sie, dass das Steuerelement nicht zurückgegeben wird, um das Skript überhaupt fortzusetzen, es ist fast, dass die App von Anfang an neu gestartet wurde.

Safari Web Inspector zeigt keine Fehler an.

GapDebug auf Mac (ich benutze eine virtuelle Box Yosemite Mac-Version) zeigt keine Fehler.

Bitte helfen Sie mir, da ich mir an dieser Stelle nicht ganz sicher bin, was mir sonst noch fehlt.

Antwort

0

Ich weiß es spät für diese Frage zu beantworten, aber es könnte anderen helfen, dieses Problem zu beheben. Also hier ist die Lösung

<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'"> 

fügen Sie dies in index.html.gap: // ready wird für iOS 10 benötigt

+0

Nicht funktionierend, ist da noch ein anderer Schritt? – Sopo

Verwandte Themen