cocos2dx-3.1 接入多盟广告sdk+Android
Posted wzjhoutai
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cocos2dx-3.1 接入多盟广告sdk+Android 相关的知识,希望对你有一定的参考价值。
上篇,把基本工作做完了,接下来,在C++下加入代码。
1、打开win32下的project,加入一个类。DomobAd。代码例如以下,
<pre name="code" class="cpp">#if (CC_TARGET_PLATFORM == CC_PLATFORM_android) #include <jni.h> #include "platform/android/jni/JniHelper.h" //#include <android/log.h> #include "cocos2d.h" #endif using namespace cocos2d; class DomobAd { public: DomobAd(); virtual ~DomobAd(); static void showInterstitial(); /*static void initInterstitial(); static void showBanner(); static void hideBanner();*/ };
#include "DomobAd.h" DomobAd::DomobAd(){} DomobAd::~DomobAd(){} //void DomobAd::showBanner() //{ //#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) // JniMethodInfo showBanner; // bool isHave = JniHelper::getStaticMethodInfo(showBanner, "org/cocos2dx/cpp/AppActivity", "showBannerStatic", "()V"); // if (!isHave) { // CCLog("jni:showBannerStatic false"); // } // else{ // // showBanner.env->CallStaticVoidMethod(showBanner.classID, showBanner.methodID); // } //#endif //} //void DomobAd::hideBanner() //{ //#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) // JniMethodInfo hideBanner; // bool isHave = JniHelper::getStaticMethodInfo(hideBanner, "org/cocos2dx/cpp/AppActivity", "hideBannerStatic", "()V"); // if (!isHave) { // CCLog("jni:hideBannerStatic false"); // } // else{ // CCLog("jni:hideBannerStatic true"); // // hideBanner.env->CallStaticVoidMethod(hideBanner.classID, hideBanner.methodID); // } //#endif //} void DomobAd::showInterstitial() { #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) JniMethodInfo showInterstitial; bool isHave = JniHelper::getStaticMethodInfo(showInterstitial, "org/cocos2dx/cpp/AppActivity", "showInterstitialStatic", "()V"); if (!isHave) { CCLog("jni:showInterstitial false"); } else{ CCLog("jni:showInterstitial true"); showInterstitial.env->CallStaticVoidMethod(showInterstitial.classID, showInterstitial.methodID); } #endif } //void DomobAd::initInterstitial() //{ //#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) // JniMethodInfo initInterstitial; // bool isHave = JniHelper::getStaticMethodInfo(initInterstitial, "org/cocos2dx/cpp/AppActivity", "initInterstitialStatic", "()V"); // if (!isHave) { // CCLog("jni:initInterstitial false"); // } // else{ // CCLog("jni:initInterstitial true"); // // initInterstitial.env->CallStaticVoidMethod(initInterstitial.classID, initInterstitial.methodID); // } //#endif //}
#ifndef __APPMACROS_H__ #define __APPMACROS_H__ #include "cocos2d.h" #define DESIGN_RESOLUTION_480X320 0 #define DESIGN_RESOLUTION_1024X768 1 #define DESIGN_RESOLUTION_2048X1536 2 /* If you want to switch design resolution, change next line */ #define TARGET_DESIGN_RESOLUTION_SIZE DESIGN_RESOLUTION_480X320 typedef struct tagResource { cocos2d::CCSize size; char directory[100]; }Resource; static Resource smallResource = { cocos2d::CCSizeMake(480, 320), "iphone" }; static Resource mediumResource = { cocos2d::CCSizeMake(1024, 768), "ipad" }; static Resource largeResource = { cocos2d::CCSizeMake(2048, 1536), "ipadhd" }; #if (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_480X320) static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(480, 320); #elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_1024X768) static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(1024, 768); #elif (TARGET_DESIGN_RESOLUTION_SIZE == DESIGN_RESOLUTION_2048X1536) static cocos2d::CCSize designResolutionSize = cocos2d::CCSizeMake(2048, 1536); #else #error unknown target design resolution! #endif // The font size 24 is designed for small resolution, so we should change it to fit for current design resolution #define TITLE_FONT_SIZE (cocos2d::CCEGLView::sharedOpenGLView()->getDesignResolutionSize().width / smallResource.size.width * 24) #endif /* __APPMACROS_H__ */
</pre><pre name="code" class="cpp">
//在helloworldscene.cpp加入例如以下代码就可以:
<pre name="code" class="cpp"> CCMenuItemLabel * closeInterstital=CCMenuItemLabel::create(CCLabelTTF::create("showInterstital", "Helvetica", 40),this, menu_selector(HelloWorld::menuShowInterstitialCallback));
void HelloWorld::menuShowInterstitialCallback(cocos2d::CCObject* pSender){ DomobAd::showInterstitial(); }
//JniHelper 类是cocos提供的。详细使用方法:http://blog.csdn.net/luxiaoyu_sdc/article/details/15874505<a target=_blank href="http://blog.csdn.net/luxiaoyu_sdc/article/details/15874505">点击打开链接</a>
</pre><pre name="code" class="cpp" style="font-size: 13.3333339691162px;">下片再继续
以上是关于cocos2dx-3.1 接入多盟广告sdk+Android 的主要内容,如果未能解决你的问题,请参考以下文章
Unity接入TopOn聚合广告平台SDK聚合了穿山甲,优量汇(腾讯广告),快手,Mintegral,sigmob等各大广告平台SDK