Как скрыть нативную рекламу AdMob из JavaScript? - PullRequest
0 голосов
/ 08 февраля 2012

Я разработал приложение для Android PhoneGap.В приложении используется нативный рекламный код admob, где реклама отображается внизу приложения.Я выбрал собственный метод вместо интеграции javascript, потому что родная версия позволяет мне иметь больше возможностей для изменения на сайте admob.Мой вопрос: можно ли скрыть / показать рекламу AdMob из JavaScript?

Спасибо.

1 Ответ

1 голос
/ 21 мая 2012

Вы можете реализовать плагин, который будет показывать / скрывать рекламный баннер.Вот пример:

com.example.AdBanner:

public class AdBannerPlugin extends Plugin {
    public static final String BROADCAST_ACTION_SHOW_AD_BANNER = "com.example.SHOW_AD_BANNER";
    public static final String BROADCAST_ACTION_HIDE_AD_BANNER = "com.example.HIDE_AD_BANNER";
    private static final String ACTION_SHOW_AD_BANNER = "showBanner";
    private static final String ACTION_HIDE_AD_BANNER = "hideBanner";

    /**
     * @see Plugin#execute(String, org.json.JSONArray, String)
     */
    @Override
    public PluginResult execute(final String action, final JSONArray data, final String callbackId) {
        if (ACTION_SHOW_AD_BANNER.equals(action)) {
            final Intent intent = new Intent();
            intent.setAction(BROADCAST_ACTION_SHOW_AD_BANNER);
            this.ctx.getApplicationContext().sendBroadcast(intent);
            return new PluginResult(OK);
        } else if (ACTION_HIDE_AD_BANNER.equals(action)) {
            final Intent intent = new Intent();
            intent.setAction(BROADCAST_ACTION_HIDE_AD_BANNER);
            this.ctx.getApplicationContext().sendBroadcast(intent);
            return new PluginResult(OK);
        } else {
            Log.e(LOG_TAG, "Unsupported action: " + action);
            return new PluginResult(INVALID_ACTION);
        }
    }
}

В вашей основной деятельности:

private BroadcastReceiver adReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(final Context context, final Intent intent) {
        if (BROADCAST_ACTION_SHOW_AD_BANNER.equals(intent.getAction())) {
            //check if the ad view is not visible and show it 
        } else if (BROADCAST_ACTION_HIDE_AD_BANNER.equals(intent.getAction())) {
            //check if the ad view is visible and hide it
        }
    }
};

@Override
public void onResume() {
    final IntentFilter intentFilter = new IntentFilter();
    intentFilter.addAction(BROADCAST_ACTION_HIDE_AD_BANNER);
    intentFilter.addAction(BROADCAST_ACTION_SHOW_AD_BANNER);
    registerReceiver(adReceiver, intentFilter);
    super.onResume();
}

@Override
public void onPause() {
    unregisterReceiver(adReceiver);
    super.onPause();
}

В plugins.xml:

<plugin name="com.example.AdBanner" value="com.example.AdBannerPlugin"/>

Теперь вы можете скрыть рекламный баннер от javascript:

cordova.exec(onSuccess, onFail, 'com.example.AdBanner', 'hideBanner', []);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...