zoukankan      html  css  js  c++  java
  • cocos2d-x android 项目调用插屏广告

    首先了解一下 jni的一些东西

    http://www.himigame.com/android-game/725.html

    里面的我也就不再复制粘贴了。

    我这里使用的是mix智游汇的demo。

    1 和Android项目一样

     首先把mix的jar包放入libs中,添加连接和以前的步骤一样。
    添加一个static方法,内部调用MIXView的showAd的方法,注意第一个参数。
    public class TEST extends Cocos2dxActivity implements MIXViewListener{
        //定义一个静态的上下文
        public static Context context_;
        
        protected void onCreate(Bundle savedInstanceState){
            super.onCreate(savedInstanceState);
            //初始化mix插件
              MIXView.initWithID("6f83f191b42739f9", true,
                        this);
            //设置上下文
              context_=TEST.this;
              //可选项:设置mix监听
              MIXView.setListener(this);
        }
        
        static {
             System.loadLibrary("game");
        }
        //这个是himi的demo 静态函数示例2.有参数,无返回值 
        public static void testFunWithInt(int _int) { 
            Log.e("Himi", "静态函数示例1.有参数,无返回值;传入的参数int=" + _int); 
        }
        //这个是mix调用展示广告的方法。
        public static void showAAd(){
            
            MIXView.showAd((Activity) context_, "default");
        }

    mix.showAd 第二个参数是广告触发位,可以自己设置。

    在c++代码中

    我自己又添加了一个button,添加了一个回掉函数menuCloseCallback1()

    void HelloWorld::menuCloseCallback1()
    {
       CCLOG("%s","test...");
    
    
        ////静态函数示例1.无参数,无返回值---------------------------------$$$$$$-----------------------------
    #if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID) //判断当前是否为Android平台
        JniMethodInfo minfo;//定义Jni函数信息结构体
        //getStaticMethodInfo 次函数返回一个bool值表示是否找到此函数
        bool isHave = JniHelper::getStaticMethodInfo(minfo,"com/aosting/TEST",  //类的路径
                                                     "showAAd", "()V");
        
        if (!isHave) {
            CCLog("jni:此函数不存在");
        }else{
            CCLog("jni:此函数存在");
            
            //调用此函数
            minfo.env->CallStaticVoidMethod(minfo.classID, minfo.methodID);
               
        }
        CCLog("jni-java函数执行完毕");
    #endif
    
    }
     运行Android就可以了,其中我没有在ccoos2d-x中游戏状态做处理,比如在展示广告的时候,暂停一些资源,关闭的时候,重新开启。
    mix可以自定义广告触发位,也就是mix.showAd 第二个参数。
    开始的时候我一直想用在c++中传递string类型,发现很麻烦。可以在c++中传递int参数。
    然后在java方法中添加一个switch语句来展示不同的位置广告。
     

     

  • 相关阅读:
    openwrt解压zstd包时报错"openwrt/dl/zstd-1.4.5.tar.zst: Permission denied tar: This does not look like a tar archive tar: Exiting with failure status due to previous errors"如何处理?
    pip如何使用代理?
    Markdown: 对Typora的一些小调整
    ray
    关于nginx中proxy_set_header的设置
    解决 curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
    mysql 查询慢问题分析
    Elasticsearch导出数据存入本地文件
    mysql count 几种写法时间的比较
    python 线程池的实现
  • 原文地址:https://www.cnblogs.com/aosting/p/3459631.html
Copyright © 2011-2022 走看看