几乎所有的广告库提供商都只提供原生代码(Android/iOS)。要在 Cocos2dX 中执行此操作,您需要在 Revmob API 的顶部编写一个 C++ Wrapper。
有人为 Flurry 做过这件事,这会给你一些提示如何做到这一点
https://github.com/diwu/AnalyticX
还有一个人写了完整的故事,他是如何完成这种事情的。见下文
http://blog.molioapp.com/2011/11/openfeint-and-admob-integrated-with.html
只是为了让你往下走是你至少需要知道/做的事情。简而言之,请委托代表来回电。为 ObjectiveC 和 Java 制作一个单一的@interface。但是对于 java,您还需要创建一个 JNI 类。请注意,我之所以写 Singleton,是因为在 90% 的情况下,我们只需要显示 1 个广告,并且它位于屏幕顶部。
如果您从头开始,请参阅以下课程。因为我知道 Objective-C,所以我只会打电话给这部分。有关详细信息,您可以探索上述线程。
ReveMobCWrapperDelegate.h 制作纯虚方法,即
virtual void didAddSuccss() = 0;
virtual void didAddFailed() = 0;
RevMobCWrapper.h 使其可在 Android/iOS 上使用。在最好的情况下,它应该是适用于 iOS 和 Android 的单个文件。例如考虑方法void showAdd(ccPoint pos);
RevmobCBinding.h 将是 Objective C 的@interface,但是它将包含 (1) RevMobCWrapperDelegate.h 的委托变量,以便在收到 Add 后抛出回调。为方便起见,使其成为单例。请注意,此实现将是 C 和 Objective C 的混合,并且将使用 Revmob API 的方法,还要小心提供 C++ 和 Objective C 实现,您需要将此扩展名为“.mm”,如 RevmobCBiniding.mm。
要编写 RevMobCWrapper 的实现,您可以使用 RevmobCBinding.mm 或创建一个新文件 RevMobCWrapper.mm