Javascript phonegap admob插件在xcode中获取横幅高度

Javascript phonegap admob插件在xcode中获取横幅高度,javascript,cordova,xcode5,admob,Javascript,Cordova,Xcode5,Admob,我正在使用admob插件(在iOS中),它工作得很好,但我也使用谷歌地图,我根据屏幕高度减去标题来调整地图高度,现在我还需要降低admob横幅的高度 我试图添加一个新函数来获取横幅大小,并从javascript调用它,但没有得到任何响应 这是我添加到CDVAdMob.m文件中的代码: - (GADAdSize)GetAdSize:(CDVInvokedUrlCommand *)command { return self.bannerView.adSize; } 我还拥有CDVAdMo

我正在使用admob插件(在iOS中),它工作得很好,但我也使用谷歌地图,我根据屏幕高度减去标题来调整地图高度,现在我还需要降低admob横幅的高度

我试图添加一个新函数来获取横幅大小,并从javascript调用它,但没有得到任何响应

这是我添加到CDVAdMob.m文件中的代码:

- (GADAdSize)GetAdSize:(CDVInvokedUrlCommand *)command  {
    return self.bannerView.adSize;
}
我还拥有CDVAdMob.h文件的函数签名:

- (GADAdSize)GetAdSize:(CDVInvokedUrlCommand *)command;
我不熟悉objective c代码,所以我不知道我所做的是否正确

在javascript中,我通过以下方式调用了新函数:

window.plugins.AdMob.createBannerView();
var size = window.plugins.AdMob.GetAdSize();
alert(size);
谁能告诉我这是怎么做的吗


Thanx

只需设置以下两个选项:{overlap:false,offsetTopBar:true},那么插件将自动扣除状态栏和横幅视图的高度

如果您使用的是其他一些叉子,但没有此类功能,请尝试以下步骤

Cordova插件API是一个无效函数:

- (void) YourAPI:(CDVInvokedUrlCommand *)command;
并且,使用以下命令将数据传递回javascript:

[self.commandDelegate sendPluginResult:result callbackId:callbackId];
GADAdSize是一种数据结构,您需要将其转换为JSON对象,然后发送回

typedef struct GADAdSize {
  CGSize size;
  NSUInteger flags;
} GADAdSize;
因此,您的代码可以是:

- (void) GetAdSize:(CDVInvokedUrlCommand *)command {
    //GADAdSize adSize;

    NSMutableDictionary* data = [[NSMutableDictionary alloc] init];
    [data setValue:[NSNumber numberWithFloat:adSize.size.width] forKey:@"width"];
    [data setValue:[NSNumber numberWithFloat:adSize.size.height] forKey:@"height"];
    CDVPluginResult* result = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:data];
    [self.commandDelegate sendPluginResult:result callbackId:command.callbackId];
}
AdMob.js中的映射:

admobExport.GetAdSize = function(successCallback, failureCallback) {
    cordova.exec( successCallback, failureCallback, 'AdMob', 'GetAdSize', [] );
};
然后用javascript调用它:

window.pugins.AdMob.GetAdSize(function(data){
    var width = data.width;
    var height = data.height;
},function(){});