2014-11-17 4 views
0

Я использую плагин admob (в iOS), и он отлично работает, но я также использую карты Google, и я настраиваю высоту карты в соответствии с высотой экрана минус заголовок, и теперь мне нужно уменьшите также высоту баннера admob.phonegap admob plugin получить высоту баннера в xcode

Я попытался добавить новую функцию для получения размера баннера и вызвать его из javascript, но я не получаю никакого ответа.

это код, я добавить в файл CDVAdMob.m:

- (GADAdSize)GetAdSize:(CDVInvokedUrlCommand *)command { 
    return self.bannerView.adSize ; 
} 

я также имел функцию подписи файла CDVAdMob.h:

- (GADAdSize)GetAdSize:(CDVInvokedUrlCommand *)command; 

Я не знаком с объектный код c, поэтому я не знаю, правильно ли я это сделал.

в JavaScript я назвал новую функцию с помощью:

window.plugins.AdMob.createBannerView(); 
var size = window.plugins.AdMob.GetAdSize() ; 
alert(size); 

Может кто-нибудь сказать мне, как это делается правильно?

Thanx

ответ

2

Просто установите следующие 2 варианта: {перекрытия: ложь, offsetTopBar: истинно}, то плагин будет автоматически вычитать высоту строки состояния и вид баннера.

Если вы используете какие-либо другие вилки и не имеете такой функции, попробуйте выполнить следующие шаги.

Кордова плагин 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]; 
} 

Mapping в 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(){}); 
Смежные вопросы