如何区分URL格式用户点击或自动跳跃机器人的WebView [英] how to distinguish url form user clicking or automatic jump in android webview
问题描述
在我的WebView,我得到的所有URL在webViewClient方法
In my webview , I get all url in the webViewClient method
公共布尔shouldOverrideUrlLoading(web视图查看,字符串URL){}
我想扔的URL到其他应用程序,如果该URL是从用户点击。否则的WebView加载的URL self.But我无法分辨them.How我应该怎么办?
I want to throw the url to other application if the url is from user clicking. Otherwise webview load the url self.But I can't distinguish them.How should I do?
感谢您的帮助!
推荐答案
我按照<一的方法href="http://stackoverflow.com/questions/5116909/how-i-can-get-onclick-event-on-webview-in-android">How我可以得到的WebView onclick事件中的android?。
有使用dispatchTouchEvent 的Android singleTap /的OnClick一些替代品的WebView
there are some alternatives using dispatchTouchEvent Android singleTap/OnClick in WebView
Boolean changedUrl = false;
String currentUrl = null;
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
changedUrl = false;
currentUrl = webView.getUrl();
}
// change either onPageStarted or shouldOverrideUrlLoading
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
if(changedUrl && !url.equals(currenturl)) {
// page has been clicked
}
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
if(changedUrl && !url.equals(currentUrl)) {
// page has been clicked
return true;
}
return false;
}
});
webView.setOnTouchListener( new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (v.getId() == R.id.webView && event.getAction() == MotionEvent.ACTION_DOWN){
changedUrl = true;
}
return false;
}
});
这篇关于如何区分URL格式用户点击或自动跳跃机器人的WebView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!