Skip to content

Instantly share code, notes, and snippets.

@troy-lamerton
Forked from kibotu/WebViewClient
Created May 6, 2020 17:25
Show Gist options
  • Save troy-lamerton/ae6f5cb7c0e8cd751c1d948a9b6cf623 to your computer and use it in GitHub Desktop.
Save troy-lamerton/ae6f5cb7c0e8cd751c1d948a9b6cf623 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