1

私の webview では、 webViewClient メソッドですべての URL を取得します

public boolean shouldOverrideUrlLoading(WebView view, String url) {}

URLがユーザーのクリックによるものである場合、そのURLを他のアプリケーションにスローしたい。それ以外の場合、webview は URL 自体をロードします。しかし、それらを区別できません。どうすればよいですか?

ご協力いただきありがとうございます!

4

1 に答える 1

3

Androidのwebviewでonclickイベントを取得するにはどうすればよいですか?の方法に従います。.

dispatchTouchEvent Android singleTap/OnClick を 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;
    }
});
于 2013-07-30T02:53:45.783 に答える