I found my problem. Apparently in Android 5.0 shouldInterceptRequest will
not be run if their is a problem with the url being loaded. I was
using loadDataWithBaseURL("foobar://, data, encoding, null) to load first
page. Since foobar:// is not a known prefix to a url or file the request
was just being dropped. I changed foobar to http:// or file:/// and
everything started working as it did on Android 4.1. I guess a check was
introduced on 5.0 that was not being done before.
On Friday, May 20, 2016 at 5:57:50 PM UTC-6, Carlos Farrington wrote:
>
> Hi
>
> I am developing an App that intercepts the request and process them and
> then updates send the WebResourcesResponse. The code works with no issues
> on 4.2 but when I try it in 5.0 the function shouldInterceptRequest never
> sees the request. I know that there was an update on the library and I
> have made the modifications but I do not see any requests being processed.
> As you can see I have added a toast message to tell me if we enter the
> shouldInterceptRequest function but I never see the message. The requests
> that are being processes are simple gets of a html page with frames. On 4.2
> works with no problem but on 5.0 it does not work. Any ideas?
>
> Thank you,
>
> fc8282
>
>
>
> private class WebViewClientImpl extends WebViewClient
> {
> @Override
> public boolean shouldOverrideUrlLoading(WebView view, String url)
> {
> return false;
> }
>
> @Override
> public void onPageFinished(WebView view, String url)
> {
>
> }
>
> @SuppressWarnings("deprecation") // From API 21 we should use another
> overload
> @Override
> public WebResourceResponse shouldInterceptRequest ( final WebView
> view, String msg)
> {
> return processRequest ( view, msg );
> }
>
> //@TargetApi(Build.VERSION_CODES.LOLLIPOP)
> @TargetApi(android.os.Build.VERSION_CODES.LOLLIPOP)
> @Override
> public WebResourceResponse shouldInterceptRequest( WebView view,
> WebResourceRequest request)
> {
> Toast.makeText(getBaseContext(), "We are in the
> shouldInterceptRequest 5.0: ",
> Toast.LENGTH_LONG).show();
>
>
> String msg = request.getUrl().toString();
>
> return shouldInterceptRequest(view, request.getUrl().toString());
>
> // Have also tried just simply doing the return.
> //return processRequest ( view, msg );
> }
>
>
> public WebResourceResponse processRequest ( final WebView view,
> String msg )
>
--
You received this message because you are subscribed to the Google Groups
"Android Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/android-developers.
To view this discussion on the web visit
https://groups.google.com/d/msgid/android-developers/6799a4db-324e-42e5-a1b7-58537cf114cd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.