Cocos Creator 3.x Android Youlianghui/Guangdiantong

Acceso del creador de Cocos a Youlianghui (anteriormente llamado Guangdiantong):

https://adnet.qq.com/ http://xn--4oqq81ac4mc4rhev

Hay tres tipos de anuncios esta vez:

  1. Anuncios de banner (bandera)
  2. intersticial
  3. Video de anuncio recompensado

➤: Primero tienes que registrar una cuenta

➤: Nuevos medios

➤: Nuevo espacio publicitario

 

El efecto es el siguiente:

El código fuente está al final del artículo.

Entre ellos, no debería haber un sistema de nombre real para las cuentas publicitarias, por lo que ocasionalmente no se cargarán anuncios de pantalla horizontal;

 La estructura de directorios de nuestro proyecto es la siguiente:

  • Anuncios panorámicos de Adbanner
  • Intersticial de inserción de anuncio
  • Anuncios bonificados de AdReward
  • AdvertisingManager es la clase para administrar anuncios. Los métodos estáticos que llamará Cocos están escritos aquí .
  • AsbAdvertising clase base de publicidad
  • Interfaz de publicidad
  • Mi aplicación

 Adbanner.java

package com.cocos.game.adManager;

import android.app.Activity;
import android.graphics.Color;
import android.util.Log;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import com.qq.e.ads.banner2.UnifiedBannerADListener;
import com.qq.e.ads.banner2.UnifiedBannerView;
import com.qq.e.comm.util.AdError;

public class AdBanner extends AsbAdvertising implements   UnifiedBannerADListener{

    private  UnifiedBannerView ad;//banner 广告

    public AdBanner(Activity _activity,String _id){
        super(_activity,_id);
        this.ad = new UnifiedBannerView(activity, this.adID , this);

        RelativeLayout adLayout = new RelativeLayout(activity);
        RelativeLayout.LayoutParams bannerParams =new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
        bannerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

        this.ad.setBackgroundColor(Color.WHITE);
        adLayout.addView(this.ad,bannerParams);
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);
        activity.addContentView(adLayout,layoutParams);
    }
    @Override
    public void onPreload() {

    }
    @Override
    public void onShow() {
        if(this.ad != null ){
            this.ad.loadAD();
        }
    }


    @Override
    public void onNoAD(AdError adError) {
        String meg = String.format("UnifiedBannerADListener onNoAD, code: %d, message: %s",adError.getErrorCode(),adError.getErrorMsg());
        Log.d(TAG,meg);
    }

    @Override
    public void onADReceive() {

    }

    @Override
    public void onADExposure() {

    }

    @Override
    public void onADClosed() {

    }

    @Override
    public void onADClicked() {

    }

    @Override
    public void onADLeftApplication() {

    }
}

Insertar anuncio.java

package com.cocos.game.adManager;

import android.app.Activity;
import android.util.Base64;
import android.util.Log;
import com.qq.e.ads.interstitial2.UnifiedInterstitialAD;
import com.qq.e.ads.interstitial2.UnifiedInterstitialADListener;
import com.qq.e.comm.util.AdError;

public class AdInsert extends AsbAdvertising implements UnifiedInterstitialADListener {
    private  UnifiedInterstitialAD ad;//插屏广告
    public AdInsert(Activity _activity,String _id){
        super(_activity,_id);
        this.ad = new UnifiedInterstitialAD(activity, this.adID, this);
        this.onPreload();

    }
    @Override
    public void onPreload() {
        this.ad.loadAD();
    }

    @Override
    public void onShow() {
        if(ad != null&& ad.isValid()){
            ad.show();
        }else {
            Log.d(TAG,"广告未加载完成");
            ad.loadAD();
        }
    }


    @Override
    public void onADReceive() {

    }

    @Override
    public void onVideoCached() {

    }

    @Override
    public void onNoAD(AdError adError) {
        String meg = String.format("UnifiedInterstitialADListener onNoAD, code: %d, message: %s",adError.getErrorCode(),adError.getErrorMsg());
        Log.d(TAG,meg);
    }

    @Override
    public void onADOpened() {

    }

    @Override
    public void onADExposure() {

    }

    @Override
    public void onADClicked() {

    }

    @Override
    public void onADLeftApplication() {

    }

    @Override
    public void onADClosed() {
        this.onPreload();
        String res = "{\"success\":true,\"data\":[{\"id\":\"1524200775692066818\",\"rlsPlanId\":\"0\",\"storeId\":\"1454016017163370498\",\"companyId\":null,\"image\":\"https://img.vandream.com/78/062808d061a8d6.png\",\"imageName\":\"骄阳焊工\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":34,\"companyName\":\"河北骄阳焊工有限公司\",\"companyCode\":\"GF000095885\",\"companyBrand\":\"骄阳焊工\",\"companyLogo\":\"\"},{\"id\":\"1524202782523924481\",\"rlsPlanId\":\"0\",\"storeId\":\"1291662577079709697\",\"companyId\":null,\"image\":\"https://img.vandream.com/78/062814a0a13b9f.png\",\"imageName\":\"矿源\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":33,\"companyName\":\"河南省矿山起重机有限公司\",\"companyCode\":\"GF000001694\",\"companyBrand\":\"矿源\",\"companyLogo\":\"\"},{\"id\":\"1524202654509572098\",\"rlsPlanId\":\"0\",\"storeId\":\"1427882190145855489\",\"companyId\":null,\"image\":\"https://img.vandream.com/77/062813f78460ae.png\",\"imageName\":\"唐山松下\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":32,\"companyName\":\"唐山松下产业机器有限公司\",\"companyCode\":\"GF000000107\",\"companyBrand\":\"松下\",\"companyLogo\":\"\"},{\"id\":\"1524202525794832385\",\"rlsPlanId\":\"0\",\"storeId\":\"1258969183668936705\",\"companyId\":null,\"image\":\"https://img.vandream.com/77/0628117a5b45f7.png\",\"imageName\":\"春雨\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":31,\"companyName\":\"上海友钜五金制品有限公司\",\"companyCode\":\"GF000001726\",\"companyBrand\":\"春雨\",\"companyLogo\":\"https://img.vandream.com/2/2257babff7a7.jpg\"},{\"id\":\"1524202397105135617\",\"rlsPlanId\":\"0\",\"storeId\":\"1330762300927266817\",\"companyId\":null,\"image\":\"https://img.vandream.com/78/062810176c764e.png\",\"imageName\":\"海虹老人\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":30,\"companyName\":\"海虹老人北亚投资有限公司\",\"companyCode\":\"GF000037424\",\"companyBrand\":\"海虹老人HEMPEL\",\"companyLogo\":\"\"},{\"id\":\"1524202245137113090\",\"rlsPlanId\":\"0\",\"storeId\":\"1257203762842411010\",\"companyId\":null,\"image\":\"https://img.vandream.com/78/06280f75c38406.png\",\"imageName\":\"荣利\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":29,\"companyName\":\"杭州浩合螺栓有限公司\",\"companyCode\":\"GF000025106\",\"companyBrand\":\"浩合\",\"companyLogo\":\"https://img.vandream.com/3/43b51c7373cd.png\"}],\"code\":200,\"message\":\"OK\",\"error\":null}";
        AdvertisingManager.callJSFunction(res);
    }

    @Override
    public void onRenderSuccess() {

    }

    @Override
    public void onRenderFail() {

    }
}

AdReward.java

package com.cocos.game.adManager;

import android.app.Activity;
import android.util.Base64;
import android.util.Log;
import com.qq.e.ads.rewardvideo.RewardVideoAD;
import com.qq.e.ads.rewardvideo.RewardVideoADListener;
import com.qq.e.comm.util.AdError;



import java.util.Map;

public class AdReward extends AsbAdvertising implements RewardVideoADListener {
    private RewardVideoAD ad;//激励广告
    private boolean loadFinish;
    public AdReward(Activity _activity, String _id){
        super(_activity, _id);
        this.ad = new RewardVideoAD(activity,this.adID,this,false);
        this.onPreload();
    }
    @Override
    public void onPreload() {
        this.loadFinish = false;
        this.ad.loadAD();
    }

    @Override
    public void onShow() {
        if(this.loadFinish && this.ad != null&& this.ad.isValid()){
            this.ad.showAD();
        }else {
            this.ad.loadAD();
            Log.d(TAG,"广告未加载完成");
        }
    }

     listener
    @Override
    public void onADLoad() {
        this.loadFinish = true;
    }

    @Override
    public void onVideoCached() {

    }

    @Override
    public void onADShow() {

    }

    @Override
    public void onADExpose() {

    }

    @Override
    public void onReward(Map<String, Object> map) {

    }

    @Override
    public void onADClick() {

    }

    @Override
    public void onVideoComplete() {
        String res = "{\"success\":true,\"data\":[{\"id\":\"1524200775692066818\",\"rlsPlanId\":\"0\",\"storeId\":\"1454016017163370498\",\"companyId\":null,\"image\":\"https://img.vandream.com/78/062808d061a8d6.png\",\"imageName\":\"骄阳焊工\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":34,\"companyName\":\"河北骄阳焊工有限公司\",\"companyCode\":\"GF000095885\",\"companyBrand\":\"骄阳焊工\",\"companyLogo\":\"\"},{\"id\":\"1524202782523924481\",\"rlsPlanId\":\"0\",\"storeId\":\"1291662577079709697\",\"companyId\":null,\"image\":\"https://img.vandream.com/78/062814a0a13b9f.png\",\"imageName\":\"矿源\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":33,\"companyName\":\"河南省矿山起重机有限公司\",\"companyCode\":\"GF000001694\",\"companyBrand\":\"矿源\",\"companyLogo\":\"\"},{\"id\":\"1524202654509572098\",\"rlsPlanId\":\"0\",\"storeId\":\"1427882190145855489\",\"companyId\":null,\"image\":\"https://img.vandream.com/77/062813f78460ae.png\",\"imageName\":\"唐山松下\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":32,\"companyName\":\"唐山松下产业机器有限公司\",\"companyCode\":\"GF000000107\",\"companyBrand\":\"松下\",\"companyLogo\":\"\"},{\"id\":\"1524202525794832385\",\"rlsPlanId\":\"0\",\"storeId\":\"1258969183668936705\",\"companyId\":null,\"image\":\"https://img.vandream.com/77/0628117a5b45f7.png\",\"imageName\":\"春雨\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":31,\"companyName\":\"上海友钜五金制品有限公司\",\"companyCode\":\"GF000001726\",\"companyBrand\":\"春雨\",\"companyLogo\":\"https://img.vandream.com/2/2257babff7a7.jpg\"},{\"id\":\"1524202397105135617\",\"rlsPlanId\":\"0\",\"storeId\":\"1330762300927266817\",\"companyId\":null,\"image\":\"https://img.vandream.com/78/062810176c764e.png\",\"imageName\":\"海虹老人\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":30,\"companyName\":\"海虹老人北亚投资有限公司\",\"companyCode\":\"GF000037424\",\"companyBrand\":\"海虹老人HEMPEL\",\"companyLogo\":\"\"},{\"id\":\"1524202245137113090\",\"rlsPlanId\":\"0\",\"storeId\":\"1257203762842411010\",\"companyId\":null,\"image\":\"https://img.vandream.com/78/06280f75c38406.png\",\"imageName\":\"荣利\",\"moduleId\":\"1303633342033321986\",\"enabledState\":0,\"state\":null,\"startTime\":null,\"endTime\":null,\"sort\":29,\"companyName\":\"杭州浩合螺栓有限公司\",\"companyCode\":\"GF000025106\",\"companyBrand\":\"浩合\",\"companyLogo\":\"https://img.vandream.com/3/43b51c7373cd.png\"}],\"code\":200,\"message\":\"OK\",\"error\":null}";
//        String strBase64 = Base64.encodeToString(res.getBytes(), Base64.DEFAULT);
        AdvertisingManager.callJSFunction(res);
    }

    @Override
    public void onADClose() {
        this.loadFinish = false;
        this.ad.loadAD();
    }

    @Override
    public void onError(AdError adError) {
        String meg = String.format("RewardVideoADListener onNoAD, code: %d, message: %s",adError.getErrorCode(),adError.getErrorMsg());
        Log.d(TAG,meg);
    }

}

Gestor de publicidad.java

package com.cocos.game.adManager;

import android.app.Activity;
import android.util.Base64;
import android.util.Log;

import com.cocos.lib.CocosHelper;
import com.cocos.lib.CocosJavascriptJavaBridge;
import com.cocos.lib.JsbBridge;

public class AdvertisingManager {
    public static Activity activity;
    public static IAdvertising adInsert;
    public static IAdvertising adBanner;
    public static IAdvertising adReward;
    public  AdvertisingManager(Activity _activity) {
         this.activity = _activity;
         this.adInsert = new AdInsert(_activity,"2091645780016154");
         this.adBanner = new AdBanner(_activity,"4080052898050840");
         this.adReward = new AdReward(_activity,"9011264358826997");
    }

    public static void showAdInsert(){
        AdvertisingManager.activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                AdvertisingManager.adInsert.onShow();
            }
        });
    }
    public static void showAdBanner(){
        AdvertisingManager.activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                AdvertisingManager.adBanner.onShow();
            }
        });
    }
    public static void showAdReward(){
        AdvertisingManager.activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                AdvertisingManager.adReward.onShow();
            }
        });
    }

static void callJSFunction(final  String value){
    String strBase64 = Base64.encodeToString(value.getBytes(), Base64.DEFAULT);
    final  String jsCall = String.format("cc.find('Canvas/Layout').getComponent('NativeMannager').showAnimation('%s');", strBase64);
    Log.d("AdvertisingManager",jsCall);
    CocosHelper.runOnGameThread(new Runnable() {
        @Override
        public void run() {
            CocosJavascriptJavaBridge.evalString(jsCall);
            //JsbBridge.sendToScript();
        }
    });
}
}

AsbPublicidad.java

package com.cocos.game.adManager;

import android.app.Activity;

abstract class AsbAdvertising implements IAdvertising{
    Activity activity;
    String  adID;//广告位ID
    String  TAG;
    AsbAdvertising(Activity _activity, String id){
        this.activity = _activity;
        this.adID = id;
        this.TAG = this.getClass().getSimpleName();
    }
}

IAdvertising.java

package com.cocos.game.adManager;

interface IAdvertising {
    void onPreload();
    void onShow();
}

MiAplicación.java

package com.cocos.game;

import android.app.Application;

import com.qq.e.comm.managers.GDTAdSdk;

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        GDTAdSdk.init(this, "1200751593");
    }
}

Comience en AppActivity:

Solo una frase:

this.advertisingManager = new AdvertisingManager(this);

Modificar AndroidManifest.xml

 

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.john.nativeTest"
    android:installLocation="auto">

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />    <!-- 可选,如果需要精确定位的话请加上此权限 -->

    <application
        android:allowBackup="true"
        android:name="com.cocos.game.MyApplication"
        android:label="@string/app_name"
        android:usesCleartextTraffic="true"
        tools:replace="android:allowBackup"
        android:icon="@mipmap/ic_launcher">

        <!-- Tell CocosNativeActivity the name of our .so -->
        <meta-data android:name="android.app.lib_name"
                   android:value="cocos" />

        <activity
            android:name="com.cocos.game.AppActivity"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
            android:label="@string/app_name"
            android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
            android:launchMode="singleTask"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.cocos.lib.CocosEditBoxActivity"
            android:configChanges="orientation|keyboardHidden|screenSize|screenLayout"
            android:screenOrientation="behind"
            android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen" />

        <activity
            android:name="com.qq.e.ads.PortraitADActivity"
            tools:replace="android:screenOrientation"
            android:screenOrientation="portrait"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />
        <activity
            android:name="com.qq.e.ads.LandscapeADActivity"
            tools:replace="android:screenOrientation"
            android:screenOrientation="landscape"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize" />

        <provider
            android:name="com.qq.e.comm.GDTFileProvider"
            android:authorities="${applicationId}.gdt.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/gdt_file_path" />
        </provider>

    </application>

</manifest>

 

Si no hay una carpeta libs, cree una nueva carpeta libs y arrastre el SDK a ella

.gradle agrega una oración:

repositorios { 
    flatDir { 
        dirs 'libs' 
    } 
}

 Luego está el código de llamada de Cocos Creator:

Dirección de descarga del código fuente:

CocosCreator Youlianghui/Guangdiantong android-Javascript document resources-CSDN descarga CocosCreator3.x interacción TS nativa androidCocosCreator3 Para obtener más recursos de descarga y materiales de aprendizaje, visite el canal de descarga de CSDN. https://download.csdn.net/download/nicepainkiller /86402851

Supongo que te gusta

Origin blog.csdn.net/nicepainkiller/article/details/126380761
Recomendado
Clasificación