如何在Android中使用Phonegap和Admob

3

我在我的Phonegap应用程序中遇到了显示广告的问题,错误消息为"you must have adactivity declared in androidmanifest.xml with configchanges"

这是我的manifest.xml文件。

 <?xml version="1.0" encoding="utf-8"?>
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.MyApp"
  android:versionCode="5"
  android:versionName="1.3.1" >

 <supports-screens
  android:largestWidthLimitDp="320"
  android:smallScreens="true"
  android:normalScreens="true"
  android:largeScreens="true"        
  android:xlargeScreens="true"/>


 <uses-sdk

    android:minSdkVersion="15"
    android:targetSdkVersion="17" />

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

 <application
    android:debuggable="false"
    android:allowBackup="true"
    android:icon="@drawable/desktop_icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

   <activity
      android:name="com.MyApp.Activity"
      android:label="@string/app_name" 
      android:configChanges="orientation|keyboardHidden|screenSize|locale">

    <intent-filter>
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    <!--      AdMobActivity definition -->

    <activity android:name="com.google.ads.AdActivity" 
      android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize"/>

  </application>


</manifest>

我使用的用于使用Admob的库是GoogleAdMobAdsSdk-6.4.1.jar 相似的代码在正常活动中运行(不使用phonegap),但在嵌入admob时遇到了麻烦。
2个回答

5

两个链接都失效了。 - Peter Cullen

1

旧版本的AdMob SDK不受Android支持。您可以尝试使用其他插件。 参考:https://github.com/admob-google/admob-cordova

1.安装AdMob PhoneGap插件

使用cordova命令
下载插件,然后在本地位置安装

cordova plugin add c:\phonegap-admob-plugin 

或者在线安装Cordova插件。
cordova plugin add com.admob.plugin

使用PhoneGap命令
下载插件,然后使用本地位置进行安装

phonegap plugin add c:\phonegap-admob-plugin 

使用PhoneGap Builder,添加配置。
<gap:plugin name="com.admob.plugin" version="1.0.0" source="plugins.cordova.io"/>

2. 初始化 AdMob PhoneGap 插件

在设备准备就绪事件后初始化插件

admob.initAdmob("admob banner ID","admob interstitial ID");//admob id format ca-app-pub-xxxxxxxxxxxxxxxxxxx/xxxxxxxxxx

3.在相关位置显示横幅广告

在Admob中有一些横幅广告尺寸,您可以创建自己的横幅广告尺寸并在Admob平台上使用。 admob.Position包含所有相关位置常量。

admob.showBanner(admob.BannerSize.BANNER,admob.Position.TOP_APP);//show banner at the top of app 

您可以设置更多的参数来控制Admob,例如测试模式和是否为儿童应用。

var admobParam=new admob.Params(); //admobParam.extra={'keyword':"admob phonegame"}; //admobParam.isForChild=true; admobParam.isTesting=true; admob.showBanner(admob.BannerSize.BANNER,admob.Position.TOP_CENTER,admobParam);

4.在绝对位置显示横幅广告

您可以像相对位置一样轻松地将Admob横幅广告放置在绝对位置。

admob.showBannerAbsolute(admob.BannerSize.BANNER,0,70);//show banner at absolute position x 0,y 70

5.展示Admob插页广告

在PhoneGap、Cordova或XDK应用中展示Admob插页广告的步骤相同。 缓存插页广告,然后在onInterstitialReceive函数中展示,或者在游戏结束时展示。

document.addEventListener(admob.Event.onInterstitialReceive, onInterstitialReceive, false);//show in ad receive event fun need add receive listener
 admob.cacheInterstitial();// load admob Interstitial
 function onInterstitialReceive(message) {//show in ad receive event fun
     admob.showInterstitial();
 }
 function onGameOver(){//call this fun to show when game over
        admob.isInterstitialReady(function(isReady){
            if(isReady){
                admob.showInterstitial();
            }
        });
  }

```

6.处理admob广告事件

您可以处理admob的所有本地事件,例如onInterstitialReceive
所有事件类型都在admob.Event中
```

function onAdmobEvent (message) {
    //do some on admob event
}
document.addEventListener(admob.Event.onAdmobBannerDismiss, onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobBannerFailedReceive), onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobBannerLeaveApplication), onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobBannerPresent), onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobBannerReceive), onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobInterstitialDismiss), onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobInterstitialFailedReceive), onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobInterstitialLeaveApplication), onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobInterstitialPresent), onAdmobEvent, false);
document.addEventListener(admob.Event.onAdmobInterstitialReceive), onAdmobEvent, false);

```

7.更多功能

1.隐藏AdMob横幅广告

admob.hideBanner()

2.测试插页式广告是否成功加载。```

admob.isInterstitialReady(function(isReady){
    if(isReady){
        alert("admob Interstitial loaded");
    }
});

```


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接