首页 > 解决方案 > 在浏览器中加载 URL 时更改 URL - Android Studio

问题描述

我创建了一个应用程序,它将从我的服务器加载链接到 webview。但是,我还写了一个意图,在用户的浏览器中打开链接,以便他们可以下载文件。我希望链接在浏览器中加载时有所改变。

IE:

这是链接:https://www.example/v/file

我的应用程序应将“v”更改为“f”并加载到用户的浏览器中。

像这样:https://www.example/f/file

我的代码:

    private void initWebDowload(String s){

        webView.loadUrl(s);
        Intent i = new Intent(Intent.ACTION_VIEW);
        i.setData(Uri.parse(s));
        startActivity(i);

    }

标签: javaandroid

解决方案


有点复杂,但您需要将自定义 WebViewClient 附加到您的 WebView 以便您可以更改 URL 加载行为。

举个例子:

webView.setWebViewClient(new CustomWebViewClient());

private class CustomWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        // right here you are given the chance to change the [url] ^
        view.loadUrl(url.replace("/v/file", "/f/file")); // replace v with f
        return true;
    }
  }
}

推荐阅读