1

我在 webview 中加载“www.gmail.com”,登录后将加载一个新网页,即我们的 gmail 帐户页面。

当我提交登录详细信息并且新网页正在加载时,我必须跟踪该 url,我不需要任何硬编码值来重定向到任何网页,我想在从另一个网页加载网页时获取该 url,如何我做到了。请帮助我。

这是我的代码:

 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    title_text=(TextView)findViewById(R.id.urltxt);
    showWeb=(WebView)findViewById(R.id.webview_details_body);
    showWeb.setWebViewClient(new HelloWeb());
    showWeb.getSettings().setBuiltInZoomControls(true);
    showWeb.getSettings().setLoadWithOverviewMode(true);//show the webpage in fullsize with all info
    showWeb.getSettings().setUseWideViewPort(true);
    WebSettings webSettings = showWeb.getSettings();
    webSettings.setJavaScriptEnabled(true);

    showWebClick();

}
private void showWebClick() {
            showWeb.loadUrl("http://www.gmail.com/");


}


public boolean onKeyDown(int keyCode,KeyEvent event){
    if((keyCode==KeyEvent.ACTION_DOWN)&&showWeb.canGoBack()){
        showWeb.goBack();
        return true;
    }
     return super.onKeyDown(keyCode, event);
    }
public class HelloWeb extends WebViewClient{
    @Override
    public boolean shouldOverrideUrlLoading(WebView vw,String url){
        vw.loadUrl(url);
        s=vw.getUrl();
        title_text.setText( s);
        return super.shouldOverrideUrlLoading(vw, url);
    }
}

}

4

2 回答 2

0

webview很可能会使用其重定向的 url 调用其中一个或其中一个shouldOverrideUrlLoadingonLoadResourcewebviewclient

如果我理解您的问题是正确的,请尝试覆盖onLoadResourceWebViewClient并查看 url 参数。

UsingonLoadResource还将生成其他资源的 url,例如图像。

于 2012-09-17T09:49:45.647 回答
0

您可以使用 webview 客户端的 getUrl() 方法来实现此目的。

但是,这并不总是与传递给 WebViewClient.onPageStarted 的 URL 相同,因为尽管该 URL 的加载已经开始,但当前页面可能没有改变。

您可以参考以下链接:

http://developer.android.com/reference/android/webkit/WebView.html#getUrl%28%29

所以你必须在 onPageFinished 方法上调用 geturl 方法。会很好的。

@Override public void onPageFinished(WebView view, String url) {

       /*do your stuff here.*/

    }
于 2012-09-17T08:26:18.370 回答