簡體   English   中英

如何在android中使用帶有phonegap的Admob

[英]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

1.install 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.init admob phonegap插件

在deviceready事件之后的init插件

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

3.在關系位置展示橫幅

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);

4.在絕對位置展示橫幅

你可以把adob橫幅放在絕對位置,就像關系位置一樣簡單。

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

5.show admob非頁內廣告

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();
            }
        });
  }

```

6.handle 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.hide admob banner

admob.hideBanner()

2.測試插頁式廣告是否已成功加載```

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

```

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM