如何使用 Cordova 从 MainViewController 切换 admob 视图

Posted

技术标签:

【中文标题】如何使用 Cordova 从 MainViewController 切换 admob 视图【英文标题】:How to toggle admob view from MainViewController using Cordova 【发布时间】:2012-08-22 10:11:43 【问题描述】:

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

【问题讨论】:

【参考方案1】:

我将假设切换意味着您想要隐藏视图。您也可能意味着您想请求一个新广告,但无论如何我认为逻辑是相同的。

如果您已将 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]];

【讨论】:

以上是关于如何使用 Cordova 从 MainViewController 切换 admob 视图的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Cordova 从 MainViewController 切换 admob 视图

如何使用 Cordova 将动态数据从表单传递到 Firestore?

如何使用cordova将电话铃声静音?

如何从 cordova 应用程序将文件保存在内部存储中?

如何从 zip 文件安装 cordova 插件

如何从 ionic/cordova/phonegap 中的布局截取屏幕截图?