Skip to content

Instantly share code, notes, and snippets.

@jingwings
Forked from kibotu/WebViewClient
Created May 15, 2016 02:37
Show Gist options
  • Save jingwings/eb895bd4b24b471962beae19fbaf8081 to your computer and use it in GitHub Desktop.
Save jingwings/eb895bd4b24b471962beae19fbaf8081 to your computer and use it in GitHub Desktop.
Android WebView: resource interception and replacement by local resource
mWebView.setWebViewClient(new WebViewClient() {
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, String url) {
if (url.contains("creditcard_cvc.jpg")) {
Log.v("WebView", "Replacing [" + url + "] with [R.raw.tmp_replacement]");
ContentResolver contentResolver = getActivity().getContentResolver();
return new WebResourceResponse(contentResolver.getType(Uri.parse(url)), "UTF-8", getResources().openRawResource(R.raw.tmp_replacement));
}
return super.shouldInterceptRequest(view, url);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Override
public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
if (request.getUrl().getEncodedPath().contains("creditcard_cvc.jpg")) {
Log.v("WebView", "Replacing [" + request.getUrl() + "] with [R.raw.tmp_replacement]");
ContentResolver contentResolver = getActivity().getContentResolver();
return new WebResourceResponse(contentResolver.getType(request.getUrl()), "UTF-8", getResources().openRawResource(R.raw.tmp_replacement));
}
return super.shouldInterceptRequest(view, request);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment