Hey After looking at the breakout code, it seems that there may actually be a lot of duplicate code between Crosswalk, default AndroidWebView and others, so I created a helper class that could be used to abstract the shouldOverrideUrlLoading logic. While I was in there, I deleted most of the handlers, and now we have the correct behaviour for custom URIs which register a broadcast receiver.
I put it on my branch here: https://github.com/infil00p/cordova-android/tree/UriHelper I've constantly closed every bug that's said "Add support for custom URIs" because Android by design already supports them. However, partly due to legacy Android bugs, there was logic for specific URIs. Once I ripped out the old logic and tested it on Kitkat, it appears everything works as it should. I'm going to test this on older versions of Cordova, but it'd be good if other people looked at this before I land it in the 4.0.x branch. Thoughts? Joe