为 Phonegap Build 应用添加不带 Xcode 的 facebook iOS SDK

Posted

技术标签:

【中文标题】为 Phonegap Build 应用添加不带 Xcode 的 facebook iOS SDK【英文标题】:Add facebook iOS SDK without Xcode for a Phonegap Build app 【发布时间】:2013-02-03 20:06:38 【问题描述】:

我已经能够在不使用 Xcode 的情况下成功构建我的 ios 应用程序。我的应用程序是 html、CSS 和 javascript 的集合,以及我能够 compile with Phonegap Build 的 config.xml。

该应用的基本功能已经在 iPhone 上进行了测试并且运行良好,但现在我想使用FacebookConnect plugin for Phonegap Build 为应用添加一个社交层。但是,GitHub 上的文档要求在 Xcode 中设置应用程序。

在不使用 Xcode 的情况下,有没有办法下载 SDK(不是 .pkg)并将其添加到我上传到 Phonegap Build 以进行编译的项目文件中?如果是这样,我从哪里获得这些文件,我需要哪些文件,以及我应该在我的项目结构中的什么位置包含这些文件?

这是我目前的项目结构:

-config.xml
-index.html
-includes
--css
--js

也许在 GitHub 上有一种方法可以做到这一点,但我从来没有做过拉取请求或类似的事情。我只是在我的文本编辑器中工作,不知道如何从 GitHub 中提取。

Phonegap Build Plugins

感谢您为此提供的任何帮助!

【问题讨论】:

我在 Phonegap Build Plugins 页面上找到了以下语句,“要将本机代码导入您的 PhoneGap Build 项目,您需要将正确的 <gap:plugin> 标签添加到您的 config.xml 文件中。 "所以,将<gap:plugin name="FacebookConnect"> <param name="APP_ID" value="123456" /> </gap:plugin> 添加到我的config.xml 中,可能就是我需要做的。如果是这样,那就太好了,我更喜欢 Phonegap Build!我会对其进行测试并报告我学到的东西。 嘿,你让它工作了吗?我对一个非常简单的应用程序中的类似用法很感兴趣,我认为它可以在 phonegap 构建中很好地工作,除非我不确定这个特定的功能。 @user452886 我确实得到了这个工作。你可以在下面看到我的答案。我希望这有帮助。如果是这样,请为答案投票。 【参考方案1】:

我已经在没有 Xcode 的情况下在 Windows 上成功实现了用于 Phonegap Build 的 FacebookConnect 插件。

我建议只按照Phonegap Build Plugins page 上的说明进行操作,而忽略GitHub page 上的说明(其中涉及Xcode 和其他您不需要构建插件的东西)。他们现在更新了 GitHub 页面说明,将 Phonegap Build 用户从 GitHub 说明中引导到 Phonegap Build 插件页面。

对于第 1 步(在 facebook 上设置您的应用),选择 Native iOS App,Bundle ID 与您在 config.xml 中的“id”相同(即 com.company.appname ) 并且您可以在测试时将 App Store ID 设置为“0”。

对于第 2 步,请确保使用 facebook-js-sdk.js。有一次有一个错字。

一个很好的测试方法是将example Simple app on GitHub 的内容粘贴到一个新的 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 插件的讨论。您可以在此处了解有关插件以及当前问题和解决方案的更多信息。

我花了一点时间才弄清楚这些东西,所以希望这能帮助其他人节省一些时间。

【讨论】:

这很棒。我还没有完全实现它,但是知道我可以使用 phonegap 构建而不只是 phonegap 继续我的项目真的很有帮助。

以上是关于为 Phonegap Build 应用添加不带 Xcode 的 facebook iOS SDK的主要内容,如果未能解决你的问题,请参考以下文章

添加 config.xml 后,地理位置无法与 Phonegap Build 一起使用

phonegap build 添加 facebook 插件

如何在 phonegap build 中使用 iTunes 文件导入/导出功能

在 phonegap build config.xml 中添加 DateTimepicker 插件

使用 phonegap build 构建 phonegap 应用程序

如何在 build.phonegap.com 中添加插件