【问题标题】:How to get URL of current WebView?如何获取当前 WebView 的 URL?
【发布时间】:2017-04-28 17:46:40
【问题描述】:

我正在开发一个用户可以看到 WebView 的应用程序。有一个分享 FloatingActionButton 可以分享到 Facebook 或 Whatsapp 的链接。

我正在使用导航抽屉活动。 WebView 和 FAB 都在content_main.xml 在选择抽屉中的每个选项时,WebView 会相应地加载。

所以为了获取 URL,我使用了 webView.getUrl() 方法。但是,每当我触摸共享 FAB 时运行应用程序时,应用程序强制关闭。如果没有这种方法,我可以继续进行,但我没有网址。

我的代码是:

WebView mywebView;
FloatingActionButton fab1 = (FloatingActionButton) findViewById(R.id.fab1);
    fab1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            /*Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                    .setAction("Action", null).show();*/
            String url;
            //url=myWebView.getOriginalUrl().toString();
            url=myWebView.getUrl().toString();
            String message = "Text I want to share.";
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("text/plain");


            share.putExtra(Intent.EXTRA_TEXT, url);

            startActivity(Intent.createChooser(share, "Title of the dialog the system will open"));

        }
    });

提前感谢您的帮助。

【问题讨论】:

    标签: android url webview android-sharing


    【解决方案1】:

    首先,尝试将匿名侦听器类中的代码提取到一个方法中,然后调用该方法。其次,在调用任何方法之前总是检查空指针。第三,不需要调用myWebView.getUrl().toString(),就像调用string.toString()一样没用。

    private WebView myWebView = super.findViewById(R.id.mywebViewId);
    
    private void setFabListener() {
    
        FloatingActionButton fab1 = (FloatingActionButton) super.findViewById(R.id.fab1);
        fab1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                 doOnFabPressed();
            }
        });
    
    }
    
    private void doOnFabPressed() {
    
        if (this.myWebView != null) {
    
            String url = this.myWebView.getUrl();
            String message = "Text I want to share.";
    
            Intent share = new Intent(Intent.ACTION_SEND);
            share.setType("text/plain");
            share.putExtra(Intent.EXTRA_TEXT, url);
    
            super.startActivity(Intent.createChooser(share, "Title of the dialog the system will open"));
    
        }
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-25
      • 2019-07-19
      • 1970-01-01
      • 2012-10-07
      • 2021-08-02
      • 2018-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多