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可能不支持模拟 ...
随机推荐
- ACM程序设计选修课——Problem E:(ds:图)公路村村通(Prim)
问题 E: (ds:图)公路村村通 时间限制: 1 Sec 内存限制: 128 MB 提交: 9 解决: 5 题目描述 现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本, ...
- HDU——1003Max Sum(子序列最大和)
Max Sum Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- P4551 最长异或路径 (01字典树,异或前缀和)
题目描述 给定一棵 n 个点的带权树,结点下标从 1 开始到 N .寻找树中找两个结点,求最长的异或路径. 异或路径指的是指两个结点之间唯一路径上的所有边权的异或. 输入输出格式 输入格式: 第一行一 ...
- FWT 学习笔记
FWT学习笔记 好久以前写的,先粘上来 定义数组 \(n=2^k\) \(A=[a_0,a_1,a_2,a_3,...,a_{n-1}]\) 令\(A_0=[a_0,a_1,a_2,...,a_{\f ...
- 51nod 1201 整数划分
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1201 DP转移方程:dp[i][j] = dp[i-j][j]+dp[i ...
- SSH命令总结
目录 一.ssh命令 二.端口转发 三.scp 命令 四.rsync命令 五.sz和rz命令 六. ssh-agent 七.ssh执行命令不退出问题 参考文章 一.ssh命令 登录类型 密码登录: 服 ...
- 洛谷——P1078 文化之旅
P1078 文化之旅 题目描述 有一位使者要游历各国,他每到一个国家,都能学到一种文化,但他不愿意学习任何一种文化超过一次(即如果他学习了某种文化,则他就不能到达其他有这种文化的国家).不同的国家可能 ...
- poj 2104 K-th Number(主席树
Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 59058 Accepted: 20529 Case Time Limi ...
- IntelliJ IDEA 常用快捷键总结
个人使用频率的高低排序: Alt+enter 代码提示 Alt+7 查看类的方法 Alt+insert 生成get和set方法 ...
- JS没有contains方法,可以用indexof实现
我们很多时候会不自觉的在js代码里对一个字符串进行如下操作: str.contains("substr"); 但是js里面没有这个方法去判断字符串str是不是包含substr,而j ...