Android中WebView的点击事件无法获取当前URL
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();
}
});
}
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();
}
});
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
为此,您可以重写
WebViewClient
类中的某些方法:根据您的要求使用此方法中的任何一个,
String url
为您提供 url。For that, your can override some method in your
WebViewClient
class :Use any of this method as per your requirement, the
String url
gives you the url.仅当当前 webview 即将加载新 URL 时,才会调用 shouldOverrideUrlLoading() 方法。因此,要在单个网页应用程序内单击时接收更新的 URL,您需要扩展 WebChromeClient 类并将其实例设置为您的 webview。每当 URL 更新时 onProgressChanged 都会被调用,你将通过 webview 获得更新的 URL。
QuartzWebChromeClient 的 onProgressChanged() 内部可以通过 webview 接收更新的 URL。
The method shouldOverrideUrlLoading() will be called only when a new URL is about to load in the current webview. Hence to receive an updated URL upon click inside a single webpage application you need to extend WebChromeClient class and set its instance to your webview. Whenever URL will update onProgressChanged will be called and there you will get updated URL through webview.
Inside onProgressChanged() of QuartzWebChromeClient updated URL can be received through webview.
就像@Fatal Exception所说,这是一个不错的选择:
Like @Fatal Exception says, it´s a good option: