Phonegap Facebook插件没有响应

时间:2015-10-20 18:02:12

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

我正在努力让Phonegap Facebook插件正常工作,但没有发生错误,插件的login()功能只是没有做任何事情(它被调用,但没有做任何事情)。

每当我尝试在Cordova CLI中安装插件时,都会收到Plugin already installed通知。我通过在plugins文件夹中添加FacebookConnectPlugin.h和FacebookConnectPlugin.m手动添加了插件文件。我已将FacebookSDK.framework添加到frameworks文件夹中。但是,当我打开我的应用程序并点击登录按钮(正确调用该功能)时,没有任何反应。 Xcode中的活动控制台不显示任何错误,也不执行任何操作。

我的JS代码如下所示:

var login = function () {
    if (!window.cordova) {
        var appId = prompt("<MyAppId>", "");
        facebookConnectPlugin.browserInit(appId);
    }
    facebookConnectPlugin.login( ["email"],
        function (response) { alert(JSON.stringify(response)) },
        function (response) { alert(JSON.stringify(response)) });
}

$('.login-btn').click(function() {
    login();
});

我缺少哪一步才能完成这项工作?该插件可以找到here

此外,当我启动应用程序时,活动控制台会显示以下信息:

2015-10-20 19:58:38.586 MyApp[5143:2355309] Apache Cordova native platform version 3.8.0 is starting. 2015-10-20 19:58:38.590 MyApp[5143:2355309] Multi-tasking -> Device: YES, App: YES 2015-10-20 19:58:38.595 MyApp[5143:2355309] Unlimited access to network resources 2015-10-20 19:58:39.033 MyApp[5143:2355309] Resetting plugins due to page load. 2015-10-20 19:58:39.711 MyApp[5143:2355309] Finished load of: file:///var/mobile/Containers/Bundle/Application/365E079A-56F7-4874-9914-182A57D6DFED/Qwest.app/www/index.html

1 个答案:

答案 0 :(得分:2)

在cordova中手动添加插件通常会导致不好的事情,特别是将来如果您想要更新。现在我会尝试删除并添加插件:

cordova plugin rm phonegap-facebook-plugin 
cordova plugin -d add -d plugin add /path/to/cloned/phonegap-facebook-plugin --variable APP_ID="123456789" --variable APP_NAME="myApplication"

(您确实按照https://github.com/Wizcorp/phonegap-facebook-plugin/blob/master/platforms/ios/README.md上有关如何安装插件的说明并将其克隆到另一个目录中)查看是否有效,如果没有,请选择添加和删除平台的更多核选项。< / p>

cordova platform rm ios
cordova platform add ios

有时需要这样做,但只有在未对XCode项目进行任何更改时才应执行此操作。

此外,该插件已经分叉,https://github.com/jeduan/cordova-plugin-facebook4使用Facebook4 SDK而不是Facebook3 SDK,并且需要更少的小动作才能让IOS插件正常工作。它是api兼容的,所以它应该可以工作。