Phonegap Build cordova-plugin-facebook4插件无法在iOS上运行

时间:2017-02-05 17:57:04

标签: ios facebook cordova cordova-plugins phonegap-build

我正在创建一个包含facebook登录的phonegap构建应用程序。 以下是一些细节。 - 该应用程序具有登录Facebook按钮

  • 它使用cordova-plugin-facebook4插件(https://www.npmjs.com/package/cordova-plugin-facebook4

  • 集成代码如下:

    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");}
    );
    
  • 以上代码适用于Android应用程序。

- 上述代码在iOS应用中无效

用于测试的设备:IPad mini iOS 10.x版。

在developer.facebook.com上,iOS平台的应用程序设置如下:

Bundle ID:与phonegap的config.xml中的widget id相同的值

iPhone商店ID:空

url scheme suffix:empty

ipad商店ID:空

单点登录切换:是

以下是iOS iPad的当前行为: 1.用户在iOS应用程序中点击使用Facebook登录 2.用户被带到safari浏览器中的facebook权限页面 3.用户输入用户ID和密码 4.要求用户获得许可,用户点击"确认" 5. Safari显示一个弹出窗口,询问"在App中打开?" 6.用户单击“打开” 7.用户被带到同一个应用程序和同一页面,并显示相同的登录链接。

请注意,控件不会传回以继续执行脚本,几乎就是应用程序从启动时重新启动。

Safari网络检查器不会显示任何错误。

mac上的GapDebug(我使用的是一个虚拟机Yosemite mac版本)没有显示任何错误。

请帮忙,因为我现在不太确定,我还缺少什么。

1 个答案:

答案 0 :(得分:0)

我知道它迟到了回答这个问题,但它可能有助于解决这个问题。所以这是解决方案

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

在index.html中添加此内容。 iOS 10

需要 gap:// ready