问题描述
我能够使用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出现了问题。
任何帮助将不胜感激。
1楼
@oalbrecht,
我发布此链接,希望您能阅读整个文档。
实际上,您的错误是
3.不关注博客。
如您所见,我们现在移至npm.org上的新存储库。 这实际上给你另一个错误
11.您现在需要从NPM获取插件。
我是怎么知道的? 我用Google搜索了您的插件:
大约三(3)个链接是您的插件:
该文件说
现已弃用仓库!!!
请去
请仔细阅读方向说明。 这是一个丑陋的插件。 正确的链接是:
您的新插件设置为:
<gap:plugin name="cordova-plugin-facebookconnect-orlando" source="npm" version="0.11.0">