我已经在没有 Xcode 的情况下在 Windows 上成功实现了用于 Phonegap Build 的 FacebookConnect 插件。
我建议只按照Phonegap Build Plugins 页面上的说明进行操作,而忽略GitHub 页面上的说明(其中涉及 Xcode 和其他您不需要 Build 插件的内容)。他们现在更新了 GitHub 页面说明,以引导 Phonegap Build 用户远离 GitHub 说明并转到 Phonegap Build Plugins 页面。
对于第 1 步(在 facebook 上设置您的应用),选择 Native iOS App,Bundle ID 与您在 config.xml(即 com.company.appname)中的“id”相同,您可以将 App Store ID 设置为测试时为“0”。
对于第 2 步,请确保使用facebook-js-sdk.js
. 一时间有错别字。
一个很好的测试方法是将GitHub 上的示例 Simple 应用程序的内容粘贴到一个新的 index.html 文件中,然后将其与您的普通 config.xml 文件一起上传到 Phonegap Build 。我在我的应用程序上进行了一次构建,然后在测试之后,上传了我的普通 index.html 文件。您需要在示例应用程序的 index.html 中进行的唯一更改是将您的 Facebook 应用程序 ID 放在 FB.init 函数的底部。我也改为response.session
匹配response.authResponse
Facebook JS SDK,但我不确定这是否有必要。
请务必使用第 3 步config.xml
中提到的所有内容更新您的文件。我还添加了以下代码:
<access origin="http://m.facebook.com" />
<access origin="http://graph.facebook.com" />
<access origin="http://api.facebook.com" />
<access origin="http://fbcdn.net" subdomains="true" />
<access origin="http://akamaihd.net" subdomains="true" />
config.xml
如果您的文件中已经包含以下内容,则不需要上述代码:
<access origin="*" />
FacebookConnect 插件使用 Facebook JS SDK,您可以在此处了解更多信息:https ://developers.facebook.com/docs/reference/javascript/ 。
此外,我遇到的另一个问题是 Phonegap 构建团队正在处理的问题是,在请求权限时,您不能只通过放弃scope
选项来请求基本权限。目前,您必须至少包含一个scope
选项才能使登录功能正常工作。
function fbLogin () {
FB.login(function(response) {
if (response.authResponse) {
alert('User Login Success!');
} else {
alert('User cancelled login or did not fully authorize.');
}
}, { scope: "email" });
}
大多数开发人员可能想要要求的不仅仅是基本权限,所以这应该不是什么大问题。
我上面的回复来自Phonegap Build Support Site上关于 Facebook 插件的讨论。您可以在此处了解有关插件以及当前问题和解决方案的更多信息。
我花了一点时间才弄清楚这些东西,所以希望这能帮助其他人节省一些时间。