我在我的Phonegap应用中显示广告时遇到了麻烦,因为收到错误消息 - “ 你必须在androidmanifest.xml中使用configchanges 声明adactivity”
这是我的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嵌入phonegap时遇到麻烦。
答案 0 :(得分:5)
答案 1 :(得分:1)
使用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"/>
init插件
admob.initAdmob("admob banner ID","admob interstitial ID");//admob id format ca-app-pub-xxxxxxxxxxxxxxxxxxx/xxxxxxxxxx
在admob.BannerSize中有一些横幅大小,您可以在admob平台中创建自己的横幅尺寸。 admob.Position保持所有关系位置const。
admob.showBanner(admob.BannerSize.BANNER,admob.Position.TOP_APP);//show banner at the top of app
以及更多,您可以为测试模式设置更多的参与者,并且是您为儿童制作的应用程序。
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);
你可以把adob横幅放在绝对位置,就像关系位置一样简单。
admob.showBannerAbsolute(admob.BannerSize.BANNER,0,70);//show banner at absolute position x 0,y 70
show admob在phonegap,cordova或xdk应用程序中的非页内广告是同一步骤。 缓存非页内广告,然后在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();
}
});
}
```
你可以处理所有本机的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);
```
1.hide admob banner
admob.hideBanner()
2.测试插页式广告是否已成功加载 ```
admob.isInterstitialReady(function(isReady){
if(isReady){
alert("admob Interstitial loaded");
}
});
```