在Android的网页视图中获取点击的网址

Posted

技术标签:

【中文标题】在Android的网页视图中获取点击的网址【英文标题】:Get clicked url in web view in 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;
    

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

【问题讨论】:

【参考方案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);
        
    );

【讨论】:

以上是关于在Android的网页视图中获取点击的网址的主要内容,如果未能解决你的问题,请参考以下文章

Android获取网页视图的高度

怎能不用点击直接跳转网页

在Android系统中怎样用WebView打开一些非HTTP开头的网址

Bixby:想重定向到网页浏览器的网址上的按钮点击

如何在 Android 的文本视图中添加网页链接 url?

hbuilder怎么打包成android