Android WebView中的拦截和更改请求位置

时间:2014-12-15 01:19:10

标签: android android-webview

环顾四周后,我无法找到一种简单的方法来拦截WebView发出的请求并更改URL。

例如,我希望请求*.melange实际路由到localhost:8080,同时将原始网址保留为Host标头。

乍一看,实现这种URL重写的最简单方法是使用" new" (API级别21或更高级别)shouldInterceptRequest,从WebResourceRequest复制值以手动生成HTTP请求,然后返回具有正确值的WebResourceResponse。在我看来,"应该"做一个更容易的方法。

如果我遗漏了一些明显的东西,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

private class MyWebviewclient extends WebViewClient {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                if(url.contains("melange"){
                     String newUrl = "http://localhost:8080"+url.split("melange")[1];
                     loadUrl(newUrl);
                } 
                return false;
            }
}

现在,

yourWebView.setWebViewClient(new MyWebviewclient());