我正在开发一个应用,因为我希望每次在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
:(
请帮助.. !! 提前致谢..!! :)
答案 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