2014-02-27 77 views
0

我正在開發一個應用程序,我想要檢測每次當webview加載一個新的URL,然後在edittext中顯示該URL。Android - 檢測WebView URL不工作

我嘗試了很多解決方案並使用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 :(

請幫助..提前!! 謝謝.. !! :)

+0

爲什麼不WebViewClient覆蓋onPageStarted()或onPageFinished()? – Harish

回答

1

首先要發佈的代碼是從shouldOverrideUrlLoading返回true,這意味着你剛剛阻止了webview導航到任何位置。

其次,shouldOverrideUrlLoading不會被傳遞給您傳遞給webview.loadUrl API的任何URL。正如其他答案中的建議,onPageStarted是用於此的最簡單的API。

您可以使用下面的代碼,以玩的的API:

0

您可以覆蓋的WebViewClientonLoadResource()方法:

wv.setWebViewClient(new WebViewClient() { 
    public void onLoadResource(WebView view, String url) { 
     edittext.setText("http://"+url_new); 
    } 
} 
+0

不能正常工作.. :(剛剛試過.. –

+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

設置WebViewClient到您的網頁流量和使用getURL時finshed貼膜

class MyWebView extends WebViewClient { 

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

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

} 

集這WebViewClient到您的WebView頁..

webView.setWebViewClient(new MyWebView());