2012-09-24 36 views
2

我面临着cocos2d-x中facebook/twitter集成的问题。我不知道如何在cocos2d-x中进行facebook/twitter集成。如果有人知道这个,请帮助我。facebook/twitter在cocos2d-x中的集成?

是否可以在cocos2d-x中实现facebook/twitter集成?

如果可能的话,当它移植到android/ios/etc时会发生什么。它会正常工作吗?

谢谢...

回答

4

我写了一个简单的库连接Java和使用C目的C++(Cocos2dx)。您可以在所需的平台上搜索任何有关Facebook SDK集成的教程,只需使用我的库发送和接收来自C++的消息。我也写了一个完整的Wiki来使用这个库,请看看。

库源页:https://github.com/aajiwani/EasyNDK-for-cocos2dx

Wiki页面:http://cocos2d-x.org/projects/cocos2d-x/wiki/EasyNDK

+0

考虑使用EasyNDK移植供了cocos2d-x 3.X:https://github.com/alfonsocejudo/EasyNDK-for-cocos2dx3 – Narek

0

您可以在两个平台上使用官方SDK。创建一个通用的C++接口,每个接口都有一个用于FB & Twitter的响应回调。现在我们来调用FB版本“FacebookInterface.h”。然后,您可以创建“FacebookInterface-android.cpp”,它使用JNI与Facebook Android SDK连接,并通过JNI将结果返回给您的C++代码。您需要将此cpp文件添加到您的jni/Android.mk。

然后,您可以创建一个“FacebookInterface-ios.mm”,它包含在Xcode中用于iOS构建。该文件将实现标题功能,并使用Facebook iOS SDK。由于该文件将是* .mm Objective-C++文件,因此如果使用Objc编写的话,您可以与FB iOS SDK进行交互。

这样做的好处是您使用的是官方SDK而不是C++分支。您还可以从使用实现多线程的更高级别库的SDK中受益,因此您不必在C++中混淆pthread和libcurl。

不足之处是你必须弄乱Android JNI,但我向你保证,一旦你弄清楚了如何使用它的细节问题,那真的不是那么糟糕。

为了使事情更容易一些,您可以考虑在特定点统一您的接口。例如,您的登录界面可能与FB和Twitter相同。它要么成功,要么没有。您可能需要定义一个接口函数,该函数允许您接收FB访问令牌的响应状态(OK或Error)。但是,您可能还需要一个类似的功能,并为Twitter密钥提供额外的参数。这两种途径都会导致相同的结果 - 用户可以登录,并且您可以获得成功或失败。 SDK应该能够以图形方式处理,然后你的界面会想要处理各种情况,例如当用户关闭SDK时弹出对话框,有或没有有效的令牌等。你还希望所有的FB/Twitter API呼叫以某种方式通过此接口进行路由,以便在呼叫失败时接收状态消息,以便您可以在C++代码中处理该消息。

这是一个有点令人生畏的任务,但肯定可以分解成小块。最糟糕的部分可能是Android的JNI。这并不好玩,但这不是世界上最糟糕的事情。