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;">下片再继续
				
时间: 2024-10-07 06:58:09

cocos2dx-3.1 接入多盟广告sdk+Android (2)的相关文章

cocos2dx-3.1 接入多盟广告sdk+Android (1)

经过几天的研究,再加上大神们的指导,终于cocos连接多盟广告sdk成功了. 连接第三方sdk,要先了解eclipse的一些用法,和看懂些java代码,及一些xml,C++调用Java层代码是通过jni实现的.有一篇文章值得看看:http://blog.csdn.net/ku726999/article/details/38553889点击打开链接 1.建一个空的helloworld工程,在D:\cocos2d-x-3.1.1\tools\cocos2d-console目录下,打开命令窗口,输入

cocos2dx-3.1 接入多盟广告sdk+Android (3)

接着上篇继续: 1.在jni下的android.mk里面添加 LOCAL_SRC_FILES := hellocpp/main.cpp ../../Classes/AppDelegate.cpp ../../Classes/DomobAd.cpp ../../Classes/HelloWorldScene.cpp 2.在AppActivity下添加如下代码: /********************************************************************

cocos2dx安卓客户端接入移动MM付费SDK

C++和java的调用需要使用JNI,这里使用cocos2dx提供的JniHelper就可以满足要求. 以游戏中购买炸弹道具为例 流程图: 先按照文档进行配置: 在Java工程中新建一个包"IAP",作为C++与mmsdk交互的中间层: Handler和Listener可以使用Demo自带的两个类,将Demo2.4.2中的IAPHandler.java和IAPListener.java复制到IAP中: 在package IAP下新建类IAPJni 1 package IAP; 2 3

果盟广告SDK

// // GuomobWallView.h // GuoMobWallSample // // Created by keyrun on 14-1-21. // Copyright (c) 2014年 AK. All rights reserved. // #import <Foundation/Foundation.h> #import "GuoMobWallViewController.h" @interface GuomobWallView : NSObject @

Unity3D学习笔记(一)接入百度移动广告(Android详细讲解)

开发了第一款Unity3D游戏后,想在上面接入广告赚点小钱,于是就在网上搜索如何接入百度移动广告.由于自己的经验不足,导致折腾了很久才将广告接入成功.下面就详细介绍下百度接入流程及注意事项. 一.下载百度Unity插件 百度移动广告SDK插件地址 http://github.com/unity-plugins/BaiDu-Unity-Plugin 二.把BaiduUnityPlugin.unitypackage插件包导入Unity工程(在这里我建议先新建一个新的工程,我直接在开发完成的项目中接入

cocos2d-x学习笔记(五)接入百度联盟广告(Android横幅和插屏广告)

用cocos2d-x 3.4 开发了个小游戏,然后成功的接入百度联盟的广告,很多初学者也希望在自己开发的游戏接入广告盈利,所以我就以百度联盟的横幅和插屏广告为例,根据自己接入的步骤做个总结,希望对有需要的开发者有所帮助. 一.百度SDK包导入与权限的配置 1.导入jar包 下载百度联盟android版的SDK包,我下载的文件名Baidu_Union_SDK_Android.zip,解压后文件夹里面有个jar包Baidu_MobAds_SDK.jar,将该jar包复制到你工程的libs目录下(如果

cocos2dx Android接入芒果插屏广告

爬过了各种各样的坑,我们终于有一个像样的小游戏了!那么,接下来的工作就是接入广告,上线盈利 芒果是一个聚合广告平台,可以接入芒果后展示多盟.百度.AdMob等灰常多家的广告,非常方便. 1.广告平台配置 1.1注册芒果账号:http://www.adsmogo.com/ 进入芒果后选择 App管理 -> 添加App,填好各种信息后点击下方的 '添加App' 按钮,这里过程很简单,我就不截图啦. 点击App列表就可以看到我们刚刚添加的App了,点击App名称可以进入App的配置.这里我们先暂停一下

cocos2dx工程中接入支付宝sdk

1. 首先去支付宝官网下载开发者文档 2. 然后按着开发者文档将支付宝的sdk导入到你的工程中,并关联到工程中,步骤入下图: (1)将从支付宝官方网站获得的支付宝的sdk的jar包拷贝到工程中的libs目录下,如图 (2)右键工程选择Properties,弹出如下窗口,首先选择1,其次选中2,最后点击3将拷到工程中的三个支付宝的jar包一一关联到工程中 3.  最后修改工程的AndroidManifest.xml文件,添加新的权限和支付宝的Activity,代码如下: 新权限: <uses-pe

Cocos2d 中使用聚合广告SDK

1. 接入一个或者多个广告SDK是比较麻烦的 个人开发者还是比较简单处理广告SDK的,比较懒的话接入一个admob的就差不多了.分IOS和android版本,真正处理完也要话不少时间.无论什么SDK,都还要自己写一个广告控制的类来封装下.主要是下面这样的需求比较难处理: 我想同时接入admob和iad,或者一些国内的像百度,有米,比如插屏广告,轮放的载入,最好还能在线控制展示百分比什么的.自己也是能写,比较麻烦,还要整一个服务器,在线取数据.广告SDK接入一多,升级起来格外麻烦. 2.使用聚合广