0

iPhone アプリに admob を実装しましたが、作成されたビューは JavaScript の状態に基づいて切り替える必要があります。そのため、cordova プラグインを使用してそのビューを切り替える必要があります。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 に答える