我已经在我的 iPhone 应用程序中实现了 admob,但是应该根据我的 javascript 条件来切换创建的视图。所以,我需要使用科尔多瓦插件切换该视图。是否有可能使用 phonegap 切换 admob 视图?
问问题
364 次
1 回答
0
我将假设切换意味着您要隐藏视图。您也可能意味着您想要请求一个新广告,但无论如何我认为逻辑是相同的。
如果您已将 AdMob 代码设置为插件,则可以编写一些调用该插件的 js(即使您没有这样做,您也可以这样做)。所以 javascript 方法可能看起来像:
AdMob.prototype.hideAd =
function(options, successCallback, failureCallback) {
var defaults = {
'isHidden': false
};
for (var key in defaults) {
if (typeof options[key] !== 'undefined') {
defaults[key] = options[key];
}
}
cordova.exec(
successCallback,
failureCallback,
'AdMobPlugin',
'hideAd',
new Array(defaults)
);
};
然后在处理 AdMob 视图的本机代码中,您可以执行以下操作:
- (void)hidAd:(NSMutableArray *)arguments
withDict:(NSMutableDictionary *)options {
CDVPluginResult *pluginResult;
NSString *callbackId = [arguments pop];
if (!self.bannerView) {
// Try to prevent requestAd from being called without createBannerView first
// being called.
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_ERROR
messageAsString:@"AdMobPlugin:"
@"No ad view exists"];
[self writeJavascript:[pluginResult toErrorCallbackString:callbackId]];
return;
}
BOOL isHidden = (BOOL)[[options objectForKey:@"isHidden"] boolValue];
self.bannerView.hidden = isHidden;
pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK];
[self writeJavascript:[pluginResult toSuccessCallbackString:callbackId]];
}
于 2012-08-22T13:58:11.840 回答