2012-05-13 9 views
2

私はwebviewで私のWebページの一部を示すアンドロイドアプリを作った。問題は、ウェブページにいくつかのadsense広告があり、それをアプリに表示することができないということです。 問題は次のとおりです。アプリでショーを公開しないようにする方法はありますか?webview Androidアプリにadsense広告が表示されないようにするには?

コード:

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    mWebView = (WebView) findViewById(R.id.webview); 
    mWebView.getSettings().setJavaScriptEnabled(true); 
    mWebView.loadUrl("http://androidomedia.com/angry-birds-space-walkthrough/"); 
    mWebView.setWebViewClient(new HelloWebViewClient()); 

} 

    private class HelloWebViewClient extends WebViewClient { 
     @Override 
     public boolean shouldOverrideUrlLoading(WebView webview, String url) 
     { 
      webview.loadUrl(url); 
      return true; 
     } 
     } 
    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event) 
    { 
     if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) 
     { 
      mWebView.goBack(); 
      return true;    
     } 
     return super.onKeyDown(keyCode, event); 

    } 

} `

答えて

1

あなたはコンテンツが動的に生成されると仮定すると、サーバー側でこれを扱うことができます。リクエストがAndroidアプリから来た場合、ウェブサーバーに広告ユニットを表示させないようにしてください。明示的に、ユーザーエージェントをアンドロイド側に設定し、テンプレートを作成するときにチェックします。

0

まず、あなたは簡単にそのように検出することができたものに、あなたのユーザーエージェント文字列を設定する必要があります:あなたのウェブサイトをホストするサーバー上で、

mWebView.getSettings().setUserAgentString("AndroidWebView"); 

第二に、あなたは、動的にスクリプトを生成する必要があることをGoogleのあなたにあげた。 、その後

protected void Page_Load(object sender, EventArgs e) 
{ 

       //Ensure that the Adsense ad isn't loaded if the calling user is using a WebView 
       if (Request.UserAgent.Contains("AndroidWebView")) 
       { 
        return; 
       } 

       //Create the Google Adsense ad dynamically 
       var sb = new StringBuilder(); 
       sb.AppendLine("google_ad_client = \"ca-pub-123456789\";"); 
       sb.AppendLine("/* Ad Name Here */"); 
       sb.AppendLine("google_ad_slot = \"123456785\";"); 
       sb.AppendLine("google_ad_width = 728;"); 
       sb.AppendLine("google_ad_height = 90;"); 
       sb.Append("//-->"); 

       var scriptTag = new HtmlGenericControl("script"); 
       scriptTag.Attributes.Add("type", "text/javascript"); 
       scriptTag.InnerHtml = sb.ToString(); 

       var scriptTag2 = new HtmlGenericControl("script"); 
       scriptTag2.Attributes.Add("type", "text/javascript"); 
       scriptTag2.Attributes.Add("src", "http://pagead2.googlesyndication.com/pagead/show_ads.js"); 

       phBigAd.Controls.Add(scriptTag); 
       phBigAd.Controls.Add(scriptTag2); 

    } 

広告がオンになりたいどこでもphBigAdという名前のASPXマークアップのページにプレースホルダを追加します。あなたはあなたのウェブサイトをホストするためにASP.NETを使用している場合は、このような何かを行うことができますサイト:もちろん

<asp:PlaceHolder ID="phBigAd" runat="server" /> 

、あなたはStringBuilderのに追加する際に、独自にAdSenseコードを交換する必要がありますが、上記のはあなたで行くだろう一般的な形式です。

関連する問題