cocos2d-js添加百度appx的插屏广告(通过jsb反射机制)

本来一直用的anysdk接入广告,结果从前几天开始,百度商店的审核总是通不过,结果一问才知道:要上传到百度商店就必须要用百度的appx(真的是各种坑,我们这些个人开发者迟早要被你们大公司玩死),没办法只能用appx了,谁叫百度的量还是挺大的呢

下面是接入过程:

【1】按照百度appx给的AppXSample,先把libs文件夹下的baidu_cuid.jar和baidu_appx_android_2.0.0.jar两个jar包拷贝至项目libs里面。

【2】把AppXSample下的res文件夹下的文件全部拷贝至项目res,注意文件合并

【3】修改AndroidManifest.xml

添加:activity

<!-- 移动云AppX SDK -->
        <activity android:name="com.baidu.appx.ui.BDInnerBrowser" />

        <receiver android:name="com.baidu.appx.app_download.CompleteReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.DOWNLOAD_COMPLETE" />
                <action android:name="android.intent.action.DOWNLOAD_NOTIFICATION_CLICKED" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.PACKAGE_ADDED" />

                <data android:scheme="package" />
                <!-- 注意!! 这句必须要加,否则接收不到安装完成广播 -->
            </intent-filter>
        </receiver>

添加两个权限:

    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

【4】修改AppActivity.java文件

package org.cocos2dx.javascript;

import org.cocos2dx.lib.Cocos2dxActivity;
import org.cocos2dx.lib.Cocos2dxGLSurfaceView;
import android.content.pm.ActivityInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.os.Environment;
import android.view.WindowManager;
//百度appx
import com.baidu.appx.BDInterstitialAd;
import com.baidu.appx.BDInterstitialAd.InterstitialAdListener;
import android.util.Log;

public class AppActivity extends Cocos2dxActivity{

    //百度appx
    private static AppActivity app = null;
    private static String TAG = "AppX_Interstitial";
    private static BDInterstitialAd appxInterstitialAdView;

    static String hostIPAdress="0.0.0.0";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);        //百度appx
        app = this;//百度appx
        appxInterstitialAdView = new BDInterstitialAd(this,
                "h8g8XsOYSXo5uGnGXdAHOAUw", "zqGAV5GBdAPWt0NWuPDylS2E");
        appxInterstitialAdView.setAdListener(new InterstitialAdListener() {
            @Override
            public void onAdvertisementDataDidLoadFailure() {
                Log.e(TAG, "load failure");
            }
            @Override
            public void onAdvertisementDataDidLoadSuccess() {
                Log.e(TAG, "load success");
            }
            @Override
            public void onAdvertisementViewDidClick() {
                Log.e(TAG, "on click");
            }
            @Override
            public void onAdvertisementViewDidHide() {
                Log.e(TAG, "on hide");
            }
            @Override
            public void onAdvertisementViewDidShow() {
                Log.e(TAG, "on show");
            }
            @Override
            public void onAdvertisementViewWillStartNewIntent() {
                Log.e(TAG, "leave");
            }
        });
        appxInterstitialAdView.loadAd();
    }

     public static void sdks(final String title,final String message) {
         //这里一定要使用runOnUiThread
        app.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                if (appxInterstitialAdView.isLoaded()) {
                    appxInterstitialAdView.showAd();
                } else {
                    Log.i(TAG, "AppX Interstitial Ad is not ready");
                    appxInterstitialAdView.loadAd();
                }
            }
        });
    }

}

其中sdks()方法为jsb反射回调方法,目的是显示插屏广告

ps:要把参数换成自己的api_key和推广位ID

【5】最后一步就是在js代码中添加调用sdks()的方法

jsb.reflection.callStaticMethod("org/cocos2dx/javascript/AppActivity", "sdks", "(Ljava/lang/String;Ljava/lang/String;)V", "title", "hahahahha");
时间: 2024-12-20 16:44:32

cocos2d-js添加百度appx的插屏广告(通过jsb反射机制)的相关文章

cocos2d-js添加道有道插屏(通过jsb反射机制)

1.导入jar包 2.修改AndroidManifest.xml文件 添加:        <activity        android:name="com.xingyun.lai.Utg"        android:configChanges="keyboard|keyboardHidden|orientation"        android:launchMode="singleInstance"        android

cocos2d-js添加广点通插屏(通过jsb反射机制)

1.把广点通的jar包加入libs文件夹 2.修改AndroidManifest.xml文件 添加权限: <uses-permission android:name="android.permission.READ_PHONE_STATE"/> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> <uses-permission andr

cocos2d-js添加艾盟插屏(通过jsb反射机制)

1.导入jar包 2.修改AndroidManifest.xml文件 添加: <activity android:configChanges="keyboard|keyboardHidden|orientation" android:name="com.snunp.js.Prv" android:theme="@android:style/Theme.Translucent.NoTitleBar"/> <receiver and

cocos2d-js添加百通广告(通过jsb反射机制)

1.导入jar包,包括so文件 2.配置AndroidManifest.xml文件,添加: <!-- BDAPPUNIONSDK start --> <activity android:configChanges="keyboardHidden|orientation|screenSize" android:name="com.baidu.ops.appunion.sdk.activity.AppListActivity"/> <act

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

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

Android Studio 使用百度移动生态SDK(广告联盟)

 我相信很多朋友肯定也发现百度开放一个app应用需要收益,那收益从哪里来呢,我在此分享如何使用"百度移动生态SDK(广告联盟)" 1:在使用前,您需要获取您的APP key等应用基础信息.点击获取 http://app.baidu.com/apps 2:你需要到百度官网下载百度移动生态的sdk:http://app.baidu.com/value/sdkservice 3:解压下载的sdk,里面包含"01-SDK客户端开发包"." 02-SDK说明及范

cocos2d js ClippingNode 制作标题闪亮特效

1.效果图: 之前在<Android 高仿 IOS7 IPhone 解锁 Slide To Unlock>中制作了文字上闪亮移动的效果,这次我们来看下怎样在cocos2d js 中做出类似的效果. 顺便给我公司的游戏打下广告.https://itunes.apple.com/cn/app/kuang-zhan-san-guo/id691116157? mt=8 2.效果原理 很easy.就是一张白色两边羽化的图片在标题上从左往右移动.可是普通的移动会穿帮.我们须要以标题作为模板来截取白色的图片

vue中添加百度统计代码

一.在百度统计网站中添加自己的网站 1.官网地址:https://tongji.baidu.com/web/welcome/login. 2.在’管理‘一栏中选择‘网站列表’,然后选择新增网站,添加成功后点击代码获取,可以获取统计代码. 二. 在maim.js下百度统计代码添加 var _hmt = _hmt || []; window._hmt = _hmt; // 必须把_hmt挂载到window下,否则找不到 (function () { var hm = document.createE

原生js添加class

function hasClass(obj, cls) { return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)')); } function addClass(obj, cls) { if (!this.hasClass(obj, cls)) obj.className += " " + cls; } function removeClass(obj, cls) { if (hasClass(obj, cls