1

在我的 webview 中,我在 webViewClient 方法中获取了所有 url

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

如果 url 来自用户点击,我想将 url 扔给其他应用程序。否则webview会自行加载url。但我无法区分它们。我该怎么办?

谢谢你的帮助!

4

1 回答 1

3

我按照如何在 android 的 webview 上获取 onclick 事件中的方法?.

在 WebView中有一些使用 dispatchTouchEvent Android singleTap/OnClick 的替代方法

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 回答