0

我正在尝试对活动中的 WebView 进行一些操作,并且想知道如何检测网页何时加载(这与广告服务系统有关)。我给速度非常慢的广告代理技术支持团队发了电子邮件,他们最终回复“您可以在 WebView 中使用 HTML 横幅,您需要在 WebView 上实现 WebViewClient 类”。我不是 100% 确定这意味着什么,但我的第一个猜测是在我的活动中添加“实现 WebViewClient”这些词,即:

public class MyActivity extends Activity implements WebViewClient
{

然后我完全期待 eclipse 告诉我我缺少一些导入,然后它会给我添加的选项......但令我惊讶的是,这两个选项是“创建接口 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 WebViewClientActivity您可以将 设置WebViewClient为您的WebView,如下所示:

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