cocos2dx-3.1 接入多盟广告sdk+Android (2)
上篇,把基本工作做完了,接下来,在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 (2)的更多相关文章
- 【Android】接入有米广告SDK
测试:接入有米广告SDK(测试广告). 步骤: 1.注册并登录有米广告. 2.下载相应的SDK,这里我选了第一个[Android广告SDK ],如下图: 3.下好后,根据doc文档步骤进行操作,包括: ...
- 果盟广告SDK
// // GuomobWallView.h // GuoMobWallSample // // Created by keyrun on 14-1-21. // Copyright (c) 2014 ...
- cocos2dx工程中接入支付宝sdk
1. 首先去支付宝官网下载开发者文档 2. 然后按着开发者文档将支付宝的sdk导入到你的工程中,并关联到工程中,步骤入下图: (1)将从支付宝官方网站获得的支付宝的sdk的jar包拷贝到工程中的lib ...
- Cocos2d-JS 项目接入 触控广告平台(基于anysdk2.0.2)
本文以Cocos2d-JS项目作为示例,讲解如何集成AnySDK-JS. 一.如何创建项目我就省略了,直接进入主题. 1.1 首先,我需要下载anysdk框架包,下载地址:http://www.any ...
- unity, 集成iOS广告sdk注意事项
----更新:2015-10-22 今天在unity里集成讯飞语音听写的iOS sdk,结果发现前面集成domob广告的方法搞复杂了. 其实,直接把UnityViewControllerBase当做s ...
- iOS开发——iOS10升级极光推送SDK、友盟分享SDK
前不久升级了Xcode8 ,同时iOS10系统也推送久. 由于公司需要适配iOS 10系统,同时第三方sdk建议升级. 包含替换升级新的SDK和相应的代码修改. 主要分享如何升级极光推送SDK,友盟分 ...
- UmengAppDemo【友盟统计SDK集成以及多渠道打包配置,基于V7.5.3版本】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里只是记录下集成友盟统计SDK以及简单配置多渠道打包的步骤.所以1.该Demo不能运行:2.配置多渠道打包只是一种简单的写法,具体 ...
- UmengShareDemo【友盟分享SDK集成,基于V6.9.3版本】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这里简单记录下友盟分享SDK集成的步骤. 如果想要使用自定义分享对话框实现,请参考<ShareDialogDemo[分享对话框 ...
- 配置友盟最新SDK遇到的问题
编译报错 Undefined symbols for architecture i386:原因:i386是代表模拟器,显示i386错误说明静态库不支持模拟器,只支持真机.友盟最新SDK可能不支持模拟 ...
随机推荐
- NOJ——1658平方和(自然数平方和公式和取模法则)
[1658] 平方和 时间限制: 1000 ms 内存限制: 65535 K 问题描述 给你两个数n和m,求从6开始到6*n的等差数列(差值为6)的每一项的平方的和除6模m的值 (例如n=2,m=3, ...
- [图论训练]BZOJ 3245: 最快路线【最短路】
Description 精 明的小R每每开车出行总是喜欢走最快路线,而不是最短路线.很明显,每条道路的限速是小R需要考虑的关键问题.不过有一些限速标志丢失了,于是小R将不知 道能开多快.不过有一个合理 ...
- POJ3067 Japan
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 26270 Accepted: 7132 Description Japa ...
- vs nuget package control.
关于nuget,貌似使用nuget获取的package会在项目解决方案根目录下面将所有download下来的依赖包存储下来,所以这里的package会是最后所有的引用所在,既然不自己维护dll库的位置 ...
- WebRTC源码架构浅析(转)
Google 在2010年花了6千8百万美元收购了大名鼎鼎的 Global IP Sound/Solutions (GIPS) 公司, 得到了它的 VoIP 相关技术的专利和软件. 第二年, Goog ...
- vSphere Client 更改 ESX/ESXi 主机的端口
https://blog.csdn.net/hanzheng260561728/article/details/51283808?locationNum=8&fps=1
- 2017CCPC 哈尔滨 B
这题没有考虑到m这个东西,所以就没有往二分答案的方向想 二分答案 check的时候,我们找的是大于等于x的数有多少个被加入到那个数组中.如果 >= m说明这个数可能是答案,否则就不是. 用尺取来 ...
- waypoint+animate元素滚动监听触发插件实现页面动画效果
最近在做一个官网类型滚动加载动画,使用到waypoint监听事件插件和animate动画样式,两者结合完美实现向下滚动加载动画,但是没有做向上滚动撤消动画,留待以后有空研究 首先来介绍下jquery. ...
- 一次完整的http请求过程以及网络I/O模型select、epoll
a.一次完整的http请求过程 1.域名解析,得到域名对应的IP; 2.三次握手,客户端与服务器通过socket建立TCP/IP连接; 3.浏览器向服务器发送http请求,如:GET/index.ht ...
- css查缺补漏1
css可以写在哪里 1.和要装饰的标签写在一起 2.内部样式表(内嵌式)是写在head头部标签中,并且用style标签定义 3.外部样式表(外链式) <head><link rel= ...