我正在创建一个 phonegap
构建应用程序,其中包含一个 facebook 登录
。
下面是一些细节。
- 该应用程序有一个登录 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" ); }
);
- 上述代码在 iOS 应用中不起作用
用于测试的设备:iPad mini iOS 10.x 版。
在developer.facebook.com上,iOS平台的应用设置如下:
捆绑 ID:与 phonegap 的 config.xml 中的小部件 ID 相同
iPhone 商店 ID:空
url方案后缀:空
ipad 商店 ID:空
单点登录切换:是
以下是 iOS iPad 的当前行为: 1. 用户在 iOS 应用中点击使用 Facebook 登录 2. 用户被带到 safari 浏览器中的 facebook 权限页面 3. 用户输入用户名和密码 4. 请求用户许可,用户点击“确认” 5. Safari 显示一个弹出窗口询问“在应用程序中打开?” 6.用户点击打开 7. 用户被带到相同的应用程序和相同的页面,并显示相同的登录链接。
请注意,控件根本不会传回以继续执行脚本,这几乎是应用程序从头开始重新启动。
Safari 网络检查器没有显示任何错误。
Mac 上的 GapDebug(我使用的是 virtualbox Yosemite 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 是必需的
关于ios - Phonegap Build cordova-plugin-facebook4插件在iOS上不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42055366/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |