首页 > 解决方案 > 如何在不使用新 url 的情况下在 WebView 上读取点击链接的 url?

问题描述

我有一个Webiew. 我想阅读点击链接的网址,但Webiew不能去这个网址。WebView 必须保持在同一页面。

示例:用户单击https://stackoverflow.com/questions按钮,应用阅读此链接。但是 WebView 必须仍然停留在https://stackoverflow.com/而不刷新。我可以阅读点击链接的 URL,但我无法停止 WebView,它会转到新的 url。

标签: javaandroidwebviewandroid-webview

解决方案


正如@Sudheesh建议的那样,您应该扩展WebView提供shouldOverrideUrlLoading的新实现。与该 webview 中特定链接的 Web View onclick 事件相同。

我认为您应该避免调用super.shouldOverrideUrlLoading(view, url);以防止默认行为。

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView wv = (WebView) findViewById(R.id.myWebView);
        wv.setWebViewClient(new WebViewClient(){
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if(isURLMatching(url)) {
                    openNextActivity();
                    return true;
                }
                //return super.shouldOverrideUrlLoading(view, url);
                return false;
            }
        });
    }

    protected boolean isURLMatching(String url) {
            // some logic to match the URL would be safe to have here
        return true;
    }

    protected void openNextActivity() {
        Intent intent = new Intent(this, MyNextActivity.class);
        startActivity(intent);
    }

推荐阅读