【问题标题】:Get clicked url in web view in Android在Android的网页视图中获取点击的网址
【发布时间】:2015-12-08 05:48:50
【问题描述】:

当用户在 web 视图中按下某些东西时,我需要获取一个 url。 我使用此代码:

webView = (WebView) rootView.findViewById(R.id.webView);
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webView.loadUrl("my url");
    webView.setWebViewClient(new MyWebClient());

我的网络客户

 private class MyWebClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.e("URL", url);
        return true;
    }
}

但是,如果我单击某些内容,则永远不会调用该事件。 谢谢

【问题讨论】:

    标签: java android android-studio webview


    【解决方案1】:

    shouldOverrideUrlLoading(WebView view, String url) 将在单击 webview 上的链接时被调用。

    用法示例:

         webView.setWebViewClient(new WebViewClient() {
    
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) { 
    
                try {
    
                // do whatever you want to do on a web link click
    
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return false;
            }
    
        });
    

    webView.loadUrl("在 webview 上打开第一个网页的 URL");

    【讨论】:

    • 我得到了点击 webview 的链接,但是如果我点击 webview 中的视频,那么如何获取它的 url?
    • shouldOverrideUrlLoading(WebView view, String url) 已弃用,您还有其他解决方案吗?
    【解决方案2】:

    基于此:how to get the current page url from the web view in android

    WebView webview = new WebView(context);
    webview.setWebViewClient(new WebViewClient()
        {
            @Override
            public void onPageStarted(WebView view, String url, Bitmap favicon) {
                super.onPageStarted(view, url, favicon);
    
                System.out.println("your current url when webpage loading.." + url);
            }
    
            @Override
            public void onPageFinished(WebView view, String url) {
                System.out.println("your current url when webpage loading.. finish" + url);
                super.onPageFinished(view, url);
            }
    
            @Override
            public void onLoadResource(WebView view, String url) {
                // TODO Auto-generated method stub
                super.onLoadResource(view, url);
            }
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                System.out.println("when you click on any interlink on webview that time you got url :-" + url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多