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