Android - 检测WebView URL无法正常工作

时间:2014-02-27 15:19:14

标签: android webview

我正在开发一个应用,因为我希望每次在webview中加载新网址时检测到,然后在edittext中显示该网址。

我尝试了很多解决方案并用Google搜索。但是,没有找到解决我目的的重要解决方案..

我的代码是:

    wv.getSettings().setJavaScriptEnabled(true);
    wv.setWebViewClient(new WebViewClient()
    {
        public boolean shouldOverrideUrlLoading(WebView view, String url)
        {


            String url_new = wv.getUrl();

            Log.v("","Webview URL: "+url_new);

            edittext.setText("http://"+url_new);        

            return true;                 
        }
    }); 

甚至不打印Log Statement :(

请帮助.. !! 提前致谢..!! :)

4 个答案:

答案 0 :(得分:1)

这是我在我的应用程序中使用的代码。

WebView view = (WebView) findViewById(R.id.myWebView);
EditText edit = (EditText) findViewById(R.id.myEditText);
view.setWebViewClient(new WebViewClient(){
    public void onPageStarted (WebView view, String url, Bitmap favicon){
        edit.setText(url);
    }
});

答案 1 :(得分:1)

将WebViewClient设置为您的webview,并在页面finshed laoding

时进行访问
    class MyWebView extends WebViewClient {

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

        editText.setText(view.getUrl());
    }

}

将此WebViewClient设置为您的webview ..

    webView.setWebViewClient(new MyWebView());

答案 2 :(得分:1)

首先,您发布的代码从shouldOverrideUrlLoading返回true,这意味着您刚刚阻止webview导航到任何位置。

其次,对于您传递给webview.loadUrl API的任何网址,都不会调用shouldOverrideUrlLoading。正如其他一个答案中所建议的那样,onPageStarted是最简单的API。

您可以使用以下代码来使用API​​:

wv.setWebViewClient(new WebViewClient()
{
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
        Log.v("","Webview shouldOverrideUrlLoading URL: " + url);
        return false;
    }

    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon){
        Log.v("","Webview onPageStarted URL: " + url);
    }
}); 

答案 3 :(得分:0)

您可以覆盖onLoadResource()的{​​{1}}方法:

WebViewClient