当前位置: 代码迷 >> Android >> 没有定义facebookConnectPlugin-PhoneGap Build和Android
  详细解决方案

没有定义facebookConnectPlugin-PhoneGap Build和Android

热度:84   发布时间:2023-08-04 11:36:54.0

我能够使用PhoneGap和Ionic在iOS上运行facebookConnectPlugin。 问题是,当我尝试在Android上运行完全相同的应用程序时,出现错误“ facebookConnectPlugin未定义” 我正在使用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模拟器上(使用Visual Studio Emulator for Android的Lollipop),并尝试使用以下代码登录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)对于我在developer.facebook.com上的网站,我添加了一个Android应用程序。 Google Play包名称与config.xml中小部件元素中的“ id”相同。 对于类名,我指定了与id完全相同的东西,但在其后附加了“ .MainActivity”。 我将以上步骤2生成的密钥哈希插入到“密钥哈希”字段中。 我打开了单点登录。 不知道这是否正确。

我花了很多天试图解决这个问题,但没有运气。 我不确定问题是否出在哈希,cordova或其他一些Facebook权限上。 就像我之前说的那样,它在iOS上运行良好。 只是Android出现了问题。

任何帮助将不胜感激。

@oalbrecht,

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

实际上,您的错误是

3.不关注博客。

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

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

我是怎么知道的? 我用Google搜索了您的插件:

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

该文件说

现已弃用仓库!!!

请去

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

您的新插件设置为:

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

  相关解决方案