[英]How to use Admob with phonegap in android
我在我的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),但在將restob嵌入phonegap時遇到麻煩。
android不支持舊版本admob sdk。你可以嘗試使用其他插件。 參考: https : //github.com/admob-google/admob-cordova
使用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"/>
在deviceready事件之后的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");
}
});
```
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.