【问题标题】:how to distinguish url form user clicking or automatic jump in android webview如何在android webview中区分url表单用户点击或自动跳转
【发布时间】:2013-03-08 03:11:43
【问题描述】:

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

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

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

感谢您的帮助!

【问题讨论】:

    标签: android url webview


    【解决方案1】:

    我按照How can I get onclick event on webview in android?中的方法。

    有一些使用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;
        }
    });
    

    【讨论】:

      猜你喜欢
      • 2018-04-06
      • 1970-01-01
      • 2013-03-26
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多