【问题标题】:Add facebook iOS SDK without Xcode for a Phonegap Build app为 Phonegap Build 应用添加不带 Xcode 的 facebook iOS SDK
【发布时间】: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 我确实得到了这个工作。你可以在下面看到我的答案。我希望这有帮助。如果是这样,请为答案投票。

标签: ios facebook cordova phonegap-plugins phonegap-build


【解决方案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 继续我的项目真的很有帮助。
猜你喜欢
  • 1970-01-01
  • 2012-04-28
  • 2015-06-29
  • 2018-03-09
  • 1970-01-01
  • 2015-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多