0

我能够使用 PhoneGap 和 Ionic 让 facebookConnectPlugin 在 iOS 上运行。问题是,当我尝试在 Android 上运行完全相同的应用程序时,我收到错误"facebookConnectPlugin is not defined"。我正在使用 PhoneGap Build 并且不是为 Android 原生构建的。

以下是我为使其在 Android 上运行而采取的步骤:

1) 生成一个新的密钥库。

"C:\Program Files (x86)\Java\jre1.8.0_60\bin\keytool.exe" -genkey -v -keystore debug.keystore -alias androiddebugkey -keyalg RSA -keysize 2048 -validity 10000 

2) 使用此密钥库创建了一个新哈希。

"C:\Program Files (x86)\Java\jre1.8.0_60\bin\keytool.exe" -exportcert -alias androiddebugkey -keystore debug.keystore | openssl sha1 -binary | openssl base64

在它要求我输入密码(用于密钥库和哈希)的任何地方都使用密码“android”。

3) 在我的 config.xml 文档中添加了以下内容:

<gap:plugin name="com.phonegap.plugins.facebookconnect" version="0.9.0">
    <param name="APP_ID" value="XXXXXXXXXX" />
    <param name="APP_NAME" value="MyApp" />
</gap:plugin>

我从 Facebook 获得的 APP_ID 和 APP_NAME 是 Facebook 的显示名称。

4) 在 PhoneGap 构建中创建一个 Android 密钥,上传我指定的密钥库和别名“androiddebugkey”。对于所有密码,包括证书密码,我输入我的密码“android”。

5) 将我的应用程序上传到 PhoneGap 构建,将其安装在 Android 模拟器上(Lollipop 使用 Visual Studio Emulator for Android)并尝试使用以下代码登录 Facebook。此代码在 $ionicPlatform.ready 之后触发。

var _this = this;    
var fbLoginSuccess = function (userData) {
    facebookConnectPlugin.api("me/?fields=id,email", ["public_profile"],
        function (result) {
        },
        function (error) {
            alert("Failed: " + error);
        }
    );
}

facebookConnectPlugin.login(["public_profile"],
    fbLoginSuccess,
    function (error) {
        alert(JSON.stringify(error));
    }
);

6) 对于我在 developers.facebook.com 的网站,我添加了一个 Android 应用程序。Google Play 包名称与我在 config.xml 中的小部件元素中的“id”相同。对于类名,我指定了与 id 完全相同的内容,但附加了“.MainActivity”。我将上面第 2 步生成的 Key Hash 插入到 Key Hashes 字段中。我打开了单点登录。不确定这是否正确。

我花了几天时间试图解决这个问题,但没有运气。我不确定问题是否与哈希、cordova 或其他一些 Facebook 权限有关。就像我之前说的,它在 iOS 上运行良好。只是安卓有问题。

任何帮助将不胜感激。

4

1 回答 1

0

@oalbrecht,

我发布此链接,希望您能阅读整个文档。

刚接触 Cordova/Phonegap 的开发人员的主要错误

事实上你的错误是

3.不关注博客。

如您所见,我们现在已移至 npm.org 上的新存储库。这实际上给你带来了另一个错误

11. 你现在需要从 NPM 获取你的插件。

我是怎么想出来的?我用谷歌搜索了你的插件:com.phonegap.plugins.facebookconnect

大约三 (3) 个链接是您的插件:FacebookConnect

文件说

存储库现已弃用!!!

请到这里

仔细阅读说明。这是一个丑陋的插件。正确的链接是:

您的新插件设置是:

<gap:plugin name="cordova-plugin-facebookconnect-orlando" source="npm" version="0.11.0">

于 2015-10-25T04:18:28.410 回答