private WebView wv;
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.infoweblinkview);
wv=(WebView) findViewById(R.id.weblinkview);
wv.setWebViewClient(new WebViewClient());
wv.getSettings().setJavaScriptEnabled(true);
wv.loadUrl(getString(R.string.infourl));
wv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String previousUrl = wv.getUrl();
}
});
}
对于这一点,你可以在你的 WebViewClient
阶层
@Override
public void onPageFinished(WebView view, String url) {
// TODO Auto-generated method stub
super.onPageFinished(view, url);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
return super.shouldOverrideUrlLoading(view, url);
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
// TODO Auto-generated method stub
super.onPageStarted(view, url, favicon);
}
根据您的要求,使用其中任何一种方法。String url
给你的网址
ShouldOverrideUrlLoading()方法只有在新的URL即将加载到当前webview中时才会被调用。因此,要想在单个网页应用程序中点击时接收更新的URL,你需要扩展WebChromeClient类并将其实例设置为你的webview。每当URL更新时,就会调用onProgressChanged,这样你就可以通过webview获得更新的URL。
webView?.webChromeClient = QuartzWebChromeClient()
在QuartzWebChromeClient的onProgressChanged()里面,更新的URL可以通过webview接收。
private inner class QuartzWebChromeClient : WebChromeClient() {
override fun onProgressChanged(view: WebView, newProgress: Int) {
super.onProgressChanged(view, newProgress)
Log.d("tag",view.url)
}
}