0

アクティビティ内で WebView を使用していくつかの操作を実行しようとしていますが、Web ページがいつ読み込まれたかを検出する方法について疑問に思っていました (これは広告配信システムに関連していました)。非常に遅い広告代理店のテクニカル サポート チームにメールを送信したところ、最終的に「WebView 内で HTML バナーを使用できます。WebView に WebViewClient クラスを実装する必要があります」という返信がありました。これが何を意味するのか 100% 確信はありませんでしたが、最初に推測したのは、「WebViewClient を実装する」という言葉をアクティビティに追加することでした。

public class MyActivity extends Activity implements WebViewClient
{

次に、Eclipseがいくつかのインポートが欠落していて、追加するオプションがあることを教えてくれることを完全に期待していました...しかし、驚いたことに、2つのオプションは「インターフェイスWebViweClientの作成」と「プロジェクトセットアップの修正」でした。だから今、私は混乱していて、次に何をすべきかわからない.

誰かがサンプルコードを見せてくれたり、正しい方向に向けるためのヒントをくれたりできますか?

編集: 私がやろうとしているのは、webview に広告を読み込んでから、後で (広告の読み込みが完了したことを確認して)、webview を表示することです。

4

2 に答える 2

2
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;
import android.webkit.WebViewClient;

/*
 * Demo of creating an application to open any URL inside the application and clicking on any link from that URl
should not open Native browser but  that URL should open in the same screen.
 */
public class WebViewClientDemoActivity extends Activity {
    /** Called when the activity is first created. */

    WebView web;

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

        web = (WebView) findViewById(R.id.webview01);
        web.setWebViewClient(new myWebClient());
        web.getSettings().setJavaScriptEnabled(true);
        web.loadUrl("http://www.google.com");
    }

    public class myWebClient extends WebViewClient
    {
        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            // TODO Auto-generated method stub
            super.onPageStarted(view, url, favicon);
        }

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            // TODO Auto-generated method stub

            view.loadUrl(url);
            return true;

        }
    }

    // To handle "Back" key press event for WebView to go back to previous screen.
   @Override
   public boolean onKeyDown(int keyCode, KeyEvent event)
  {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && web.canGoBack()) {
        web.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
   }
}
于 2012-11-28T15:23:00.143 に答える
1

WebViewClientは ではありclassませんinterface

のような独自のクラスを作成する必要があり、次のようMyWebViewClient extends WebViewClientに を にActivity設定できWebViewClientますWebView

WebView myWebView = (WebView) findViewById(R.id.myWebView);
myWebView.setWebViewClient(new MyWebViewClient());
于 2012-11-28T15:23:46.050 に答える