IOS里面主要的广告平台就是用的是ADMOB, 在最新的ADMOB采用的是framework的方式,在绑定项目https://github.com/BlueRiverInteractive/robovm-ios-bindings/tree/master/admob已经不能正常使用了. 看到大家都有需求, 加班到凌晨1点钟,总算把它搞定了. 遇到了有些问题始终解决不了. 下面来介绍下怎么使用.
1.遇到的困难,
因为admob中有几处奇葩的写法,导致无法使用隐藏的symbol. 解决方案是自定义了一个.a然后写绑定 搞定
2.使用方法
在core项目中定义接口
public interface ITools {
    public void showInterAd();
    public void showBanner();
}
然后在Game里面传入它
public class GdxGame extends ApplicationAdapter {
    SpriteBatch batch;
    Texture img;
    ITools tools;
    public GdxGame(ITools tools) {
        this.tools = tools;
    }
    @Override
    public void create () {
        batch = new SpriteBatch();
        img = new Texture("badlogic.jpg");
        tools.showInterAd();
        tools.showBanner();
    }在IOS项目中实现该接口并写入传入
public class IOSLauncher extends IOSApplication.Delegate implements ITools{
    private static final String AD_UNIT_ID = "ca-app-pub-1743332321423234/7283499900";
    static IOSLauncher instance;
    @Override
    protected IOSApplication createApplication() {
        IOSApplicationConfiguration config = new IOSApplicationConfiguration();
        return new IOSApplication(new GdxGame(instance), config);
    }
    public static void main(String[] argv) {
        instance = new IOSLauncher();
        NSAutoreleasePool pool = new NSAutoreleasePool();
        UIApplication.main(argv, null, IOSLauncher.class);
        pool.close();
    }
    @Override
    public void showInterAd() {
        final GADInterstitial interstitial = new GADInterstitial(AD_UNIT_ID);
        interstitial.setDelegate(new GADInterstitialDelegateAdapter(){
            @Override
            public void didReceiveAd(GADInterstitial ad) {
                super.didReceiveAd(ad);
                interstitial.present(((IOSApplication) Gdx.app).getUIViewController());
            }
            @Override
            public void didFailToReceiveAd(GADInterstitial ad,
                    GADRequestError error) {
                Gdx.app.log("xxx", error.getCode() + "");
                super.didFailToReceiveAd(ad, error);
            }
        });
        GADRequest request = GADRequest.create();
        List<String> devices = new ArrayList<String>();
        devices.add(GADRequest.GAD_SIMULATOR_ID);
        request.setTestDevices(devices);
        interstitial.loadRequest(request);
    }
    @Override
    public void showBanner() {
         final GADBannerView mBannerView = new GADBannerView(GADAdSize.smartBannerPortrait());
            mBannerView.setAdUnitID("ca-app-pub-1743332321423234/2574098708");
            final UIViewController controller = ((IOSApplication) Gdx.app).getUIViewController();
            GADRequest request = GADRequest.create();
            List<String> devices = new ArrayList<String>();
            devices.add(GADRequest.GAD_SIMULATOR_ID);
            mBannerView.setRootViewController(controller);          
            controller.getView().addSubview(mBannerView);
            mBannerView.loadRequest(request);
    }
}应该能看懂吧? 不懂请留言
3.最重要的是环境搭建
因为自定义了一个.a文件, 所以把libGADAdSizeWrapped.a文件放入iOS项目的build/libs下面,并写入xml
<libs>
      <lib>z</lib>   
     <lib>build/libs/libGADAdSizeWrapped.a</lib>   
  </libs>把GoogleMobileAds.framework放入到build/libs里面,并在xml指定framework寻找路径(必须要加入这些framework才行哟)
 <frameworkPaths>
        <path>build/libs</path>
  </frameworkPaths>
  <frameworks>
    <framework>UIKit</framework>
    <framework>OpenGLES</framework>
    <framework>QuartzCore</framework>
    <framework>CoreGraphics</framework>
    <framework>OpenAL</framework>
    <framework>AudioToolbox</framework>
    <framework>AVFoundation</framework>
    <framework>CoreTelephony</framework>
    <framework>EventKit</framework>
    <framework>MessageUI</framework>
    <framework>EventKitUI</framework>
    <framework>SystemConfiguration</framework>
    <framework>CoreMedia</framework>
    <framework>GoogleMobileAds</framework>
  </frameworks>
  <weakFrameworks>
        <framework>AdSupport</framework>
        <framework>StoreKit</framework>
    </weakFrameworks>至此书写完毕,可以运行了.......为了那个自定义.a我还去注册了个开发者账号呢,....蛋疼 99刀大洋 心痛
如果您觉得对你有帮助的话请点赞,谢谢!
源码地址:https://github.com/tianqiujie/robovm-ios-bindings