0

我已经在我的 iPhone 应用程序中实现了 admob,但是应该根据我的 javascript 条件来切换创建的视图。所以,我需要使用科尔多瓦插件切换该视图。是否有可能使用 phonegap 切换 admob 视图?

4

1 回答 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 回答