我能够使用PhoneGap和Ionic在facebook上运行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)对于我在developers.facebook.com的网站,我添加了一个Android应用程序。 Google Play程序包名称与config.xml中widget元素中的“id”相同。对于类名,我指定了与id完全相同的东西,但附加了“.MainActivity”。我将上面步骤2生成的Key Hash插入Key Hashes字段。我打开了单点登录。不确定这是否正确。
我花了好几天试图弄明白这一点没有运气。我不确定问题是否与hash,cordova或其他一些Facebook权限有关。就像我之前说的那样,它在iOS上运行良好。这只是Android有问题。
非常感谢任何帮助。
答案 0 :(得分:0)
@oalbrecht,
我发布此链接,希望您能阅读整篇文档。
Top Mistakes by Developers new to 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">