2012-02-08 1 views
0

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

Спасибо.

ответ

1

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

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', []);