我正在创建一个包含facebook login
的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平台的应用程序设置如下:
捆绑包ID:与phonegap 的config.xml中的小部件ID相同的值
iPhone商店id:空
url方案后缀:空
ipad商店id:空
单一登录切换:YES
以下是iOS iPad的当前行为:1.用户在iOS应用程序中使用Facebook点击登录2.用户被带到safari浏览器中的facebook权限页面3.用户输入用户id和密码4.询问用户权限,用户点击"确认"5.Safari显示一个弹出窗口,询问"在应用程序中打开?"6.用户单击"打开"7.用户被带到相同的应用程序和相同的页面,并显示相同的登录链接。
请注意,控制权根本没有传回来继续脚本,几乎是应用程序从一开始就重新启动了。
Safari web检查器未显示任何错误。
mac上的GapDebug(我使用的是virtualboxYosemite mac版本)没有显示任何错误。
请帮忙,因为我现在不太确定,我还缺少什么。
我知道回答这个问题已经很晚了,但它可能会帮助其他人解决这个问题。这是的解决方案
<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中。gap://ready是iOS 10 所必需的