如何在cordova中显示原生AdMob广告?

时间:2017-02-19 09:47:35

标签: android cordova admob

我一直在寻找并测试了几个星期而且我无法随心所欲。

我正在使用cordova和ReactJS创建一个Android应用程序,(没有离子等),我正在尝试显示admob广告。我知道我可以为它创建一个插件,但我不知道如何将所有内容链接在一起,因为插件的cordova文档对它不是很深入。

如何将所有内容链接在一起?有没有人有新手的大量文件?

1 个答案:

答案 0 :(得分:0)

在Android gradle中添加googleplayservice。 并在您的Activity类中添加此代码。

    AdView adView;
  private ViewGroup parentView;
  InterstitialAd mInterstitialAd;
  private static final boolean CORDOVA_4 = Integer.valueOf(CordovaWebView.CORDOVA_VERSION.split("\\.")[0]) >= 4;
public void onCreate(Bundle savedInstanceState)
          {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
        mInterstitialAd = new InterstitialAd(this);

        // set the ad unit ID
        mInterstitialAd.setAdUnitId("ca-app-pub-your Interstitia");

        AdRequest adRequest = new AdRequest.Builder()
          .build();

        // Load ads into Interstitial Ads
        mInterstitialAd.loadAd(adRequest);

        mInterstitialAd.setAdListener(new AdListener() {
          public void onAdLoaded() {
            showInterstitial();
          }
        });

      CordovaWebView webView=this.appView;
      adView = new AdView(this);
      adView.setAdSize(AdSize.BANNER);
      adView.setAdUnitId("ca-app-pub-bannerid");
      adView.setVisibility(View.GONE);
      adView.loadAd(buildAdRequest());
      if (CORDOVA_4) {
      ViewGroup wvParentView = (ViewGroup) webView.getView().getParent();

      if (parentView == null) {
        parentView = new LinearLayout(webView.getContext());
      }

      if (wvParentView != null && wvParentView != parentView) {
        wvParentView.removeView(webView.getView());
        ((LinearLayout) parentView).setOrientation(LinearLayout.VERTICAL);
        parentView.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, 0.0F));
        webView.getView().setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT, 1.0F));
        parentView.addView(webView.getView());
        this.setContentView(parentView);

      }

    } else {
      parentView = (ViewGroup) ((ViewGroup) webView).getParent();
    }
      parentView.addView(adView);
      parentView.bringToFront();
      parentView.requestLayout();
      adView.setVisibility(View.VISIBLE);

    }
      private AdRequest buildAdRequest() {
        AdRequest.Builder request_builder = new AdRequest.Builder();

        Bundle bundle = new Bundle();
        bundle.putInt("cordova", 1);

        AdMobExtras adextras = new AdMobExtras(bundle);
        request_builder = request_builder.addNetworkExtras(adextras);
        AdRequest request = request_builder.build();
        return request;
      }

      private void showInterstitial() {
        if (mInterstitialAd.isLoaded()) {
          mInterstitialAd.show();
        }
      }
相关问题