ReactNative添加广告SDK

本文介绍了一个React Native项目中集成广告展示模块的具体实现方法,包括创建原生模块以显示横幅广告、定义视图管理器来创建广告视图组件,并通过React Package整合所有模块。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.reactnative;

import android.app.Activity;

import com.adlefee.adview.AdLefeeBannerView;
import com.adlefee.util.AdLefeeLayoutPosition;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;

/**
 * Created by Administrator on 2017/1/16.
 */

public class TestAD extends ReactContextBaseJavaModule {
    Activity b;

    public TestAD(ReactApplicationContext reactContext) {
        super(reactContext);


    }

    @Override
    public String getName() {
        return "testad";
    }

    @ReactMethod
    public void showBanner(String message, int duration) {
        if (b == null) {
            ReactApplicationContext a = getReactApplicationContext();
            b = a.getCurrentActivity();
        }
        b.runOnUiThread(new Runnable() {
            @Override
            public void run() {

                AdLefeeBannerView adlefeeLayoutCode = new AdLefeeBannerView(b, "28FA6AE77", AdLefeeLayoutPosition.CENTER_BOTTOM);
            }
        });



    }

}
package com.reactnative;

import com.adlefee.adview.AdLefeeBannerView;
import com.adlefee.util.AdLefeeLog;
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;

/**
 * Created by Administrator on 2017/1/23.
 */

public class TestViewManager extends SimpleViewManager<AdLefeeBannerView> {

    @Override
    public String getName() {//组件名称
        return "AdLefeeBannerView";
    }


    @Override
    protected AdLefeeBannerView createViewInstance(ThemedReactContext reactContext) {
        AdLefeeLog.debug_Develop = true;
        final AdLefeeBannerView adlefeeLayoutCode = new AdLefeeBannerView(reactContext.getCurrentActivity(), "28FA6AE77");
        return adlefeeLayoutCode;
    }

}



package com.reactnative;

import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.JavaScriptModule;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

/**
 * Created by Administrator on 2017/1/16.
 */

public class AppReactPackage implements ReactPackage {
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        List<NativeModule> modules=new ArrayList<>();
        modules.add(new TestAD(reactContext));
        return modules;
    }

    @Override
    public List<Class<? extends JavaScriptModule>> createJSModules() {
        return Collections.emptyList();
    }

    @Override
    public List<ViewManager> createViewManagers(
            ReactApplicationContext reactContext) {
        return Arrays.<ViewManager>asList(
                new TestViewManager()
        );
    }
}



package com.reactnative;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    protected boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
              new MainReactPackage(),new AppReactPackage());
    }

  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
  }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值