谁在MonoTouch iPhone应用程序中使用AdMob?

时间:2010-11-24 17:51:32

标签: c# iphone objective-c xamarin.ios admob

谁在MonoTouch iPhone应用程序中使用AdMob?

我们为admob获得的当前sdk是admob_iphone_sdk_20100908.tar.gz

它有两个lib文件,但由于Apple链接器中众所周知的错误,只有NoThumb文件才有用:

libAdMobNoThumb.a (2.464.412 bytes, created on 16 september 2010 at 14:41)

当我们使用以下额外标记链接测试应用程序(只是一个新生成的基于Windows Windows的项目,没有任何更改)时:

-gcc_flags "-L${ProjectDir} -lAdMobNoThumb -force_load ${ProjectDir}/libAdMobNoThumb.a"
mtouch惨遭失败     mtouch失败,没有输出(1)

(我们使用-force_load选项而不是-ObjC选项,如末尾的注释中所示:

http://developer.apple.com/library/mac/#qa/qa2006/qa1490.html)

MT_SampleAdMob.zip测试项目可从博客

获得
http://sabonrai.wordpress.com/2009/09/27/monotouch-binding-for-admob/

包含两个旧的NoThumb库:

libAdMobDeviceNoThumb3_0.a (539.288 bytes, created 15 jan 2010 at 03:26)
libAdMobSimulator3_0.a (488.464 bytes, created 5 september 2009)

将libAdMobDeviceNoThumb3_0.a库与以下gcc_flags一起使用时:

-gcc_flags "-L${ProjectDir} -lAdMobDeviceNoThumb3_0 -force_load ${ProjectDir}/libAdMobDeviceNoThumb3_0.a"

构建成功并生成应用程序。

我们还没有在这个应用程序中集成任何admob的东西,所以我们没有说明任何关于admob功能。仅仅是能够与图书馆建立联系,这在尝试使用其功能之前似乎是必不可少的。

我们对官方图书馆没有链接的事实感到沮丧,旧版本链接的地方。此外,尺寸差异相当大:官方文件已膨胀4.5倍!

因此,如果有人在单触应用程序中使用admob,请提供任何相关信息,以便我们继续使用我们的应用程序。

TIA,

Mollyke。

2 个答案:

答案 0 :(得分:1)

由于很多人会发现这个问题,你可以在github上发布的adob上使用最新的monotouch绑定https://github.com/dalexsoto/AlexTouch.GoogleAdMobAds

以下是如何使用它以及如何使用其事件

的示例
public override void ViewDidLoad ()
        {
            base.ViewDidLoad ();

            var ad = new GADBannerView(new RectangleF(new PointF(0,0), GADBannerView.GAD_SIZE_300x250))
            {
                AdUnitID = "Use Your AdMob Id here",
                RootViewController = this

            };

            ad.DidReceiveAd += delegate 
            {
                this.View.AddSubview(ad);
                Console.WriteLine("AD Received");
            };

            ad.DidFailToReceiveAdWithError += delegate(object sender, GADBannerViewDidFailWithErrorEventArgs e) {
                Console.WriteLine(e.Error);
            };

            ad.WillPresentScreen += delegate {
                Console.WriteLine("showing new screen");
            };

            ad.WillLeaveApplication += delegate {
                Console.WriteLine("I will leave application");
            };

            ad.WillDismissScreen += delegate {
                Console.WriteLine("Dismissing opened screen");
            };

            Console.Write("Requesting Ad");
            ad.LoadRequest(new GADRequest());
}

答案 1 :(得分:0)

只要TouchJSON库也通过gcc_flags链接到应用程序,就可以使用AdMob库。