我正在创建一个包含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版本)没有显示任何错误。
请帮忙,因为我现在不太确定,我还缺少什么。
答案 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 / strong>