I am using WebViewClient.shouldOverrideUrlLoading to catch any link clicks in the WebView. This works about 95% of the time, but sometimes it is simply not called.
I have noticed it in these three circumstances:
- When the link points to the page they are already on. This one isn't a really big deal, and there is a bug reported for it.
- While the page is still loading, if the user clicks a link, it rarely catches it. It will just open the link without ever calling
shouldOverrideUrlLoading
. - Randomly. While experimenting with this over the last couple months I have noticed that sometimes it just doesn't catch it. It is rare but it does happen.
Now my question is mostly how to fix problem 2, since the others are less of a big deal. However, if someone has solved either 1 or 3 I would love to hear about it.
Also, I should mention that I have tried different return values in shouldOverrideUrlLoading
and I have noticed that always returning true seems to have the best result, but the issues above still happen.