Screen Shot 2014-04-03 at 11.57.52 AM

[Android]PhoneGap(cordova)で広告を貼る

[Android]PhoneGap(cordova)で広告を貼るiOSのときは広告貼るのにXIB関係なかったけど、Andoroidだと広告貼るのにレイアウトファイルを使うってマニュアルしかなくて、困りながら直接プログラムでviewを作って広告を貼ったコードです。
(注:deprecatedあります)

UNITYとかゲームエンジン使うこと考えると、広告SDKも詳しくなっといた方がよさそう( ゚д゚)

ほんとはこれだけで動くはずだったレイアウトファイル

<jp.co.voyagegroup.android.fluct.jar.FluctView
  android:layout_width="fill_paren";
  android:layout_height="wrap_content";
>

実装コード

    /**
     * Initialize web container with web view objects.
     *
     * @param webView
     * @param webViewClient
     * @param webChromeClient
     */
    @Override
    @SuppressLint("NewApi")
    public void init(CordovaWebView webView, CordovaWebViewClient webViewClient, CordovaChromeClient webChromeClient) {
        LOG.d(TAG, "CordovaActivity.init()");

        // Set up web container
        this.appView = webView;
        this.appView.setId(100);

        this.appView.setWebViewClient(webViewClient);
        this.appView.setWebChromeClient(webChromeClient);
        webViewClient.setWebView(this.appView);
        webChromeClient.setWebView(this.appView);

        this.appView.setLayoutParams(new LinearLayout.LayoutParams(
                ViewGroup.LayoutParams.MATCH_PARENT,
                ViewGroup.LayoutParams.MATCH_PARENT,
                1.0F));

        if (this.getBooleanProperty("DisallowOverscroll", false)) {
            if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
                this.appView.setOverScrollMode(CordovaWebView.OVER_SCROLL_NEVER);
            }
        }

        // Add web view but make it invisible while loading URL
        this.appView.setVisibility(View.INVISIBLE);
        // 広告用レイアウトインスタンス
        RelativeLayout layoutAd = new RelativeLayout(this);
        RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(
                LinearLayout.LayoutParams.FILL_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        layoutParams.addRule(RelativeLayout.ALIGN_BOTTOM, RelativeLayout.TRUE);
        // 広告ビューのインスタンス
        FluctView bottomFluctView = new FluctView(getContext());
        layoutAd.addView(bottomFluctView);
        this.appView.setVisibility(View.INVISIBLE);
        // ビューの追加
        this.root.addView(this.appView);
        this.root.addView(layoutAd, layoutParams);
        setContentView(this.root);
        // Clear cancel flag
        this.cancelLoadUrl = false;
    }

以上、ご参考までで

About the author
  • コメントを残す