Yes, I know that this is an extreme case, but it happened to us (me and @Jei).
When you try to load multiple (1+) webviews at the same time with *same local URL*, the listeners provided by the XHR bridge (ti-injection) works *only for the first one instantiated*.
I debugged for hours, and finally realized why this happens.
The _LocalProtocolHandler_ class implemented in the Webview communication receives only the first URL to load; and this causes only one injection *with the same Ti.pageToken*.
In this screenshot you can see that the generated pageToken is the same:
!
https://cl.ly/3H393n3C2a2D/Screen%20Shot%202016-12-24%20at%2012.29.07.png!
The solution would be to inject a new header that has a unique counter thats incremented every time a new local URL is set.
Community PR: https://github.com/appcelerator/titanium_mobile/pull/8712 Test-Case:
Using the sample code above with the attached HTML file I verified that the page token was unique for each instance of the web view and that all event listeners fired on all web views. Tested on; iPhone 7 (10.2) and Simulator (10.2) MacOS 10.11.6 (15G31) Studio 4.8.1.201612050850 Ti SDK 6.1.0.v20170118152304 Appc NPM 4.2.8 Appc CLI 6.1.0 Ti CLI 5.0.11 Alloy 1.9.5 Arrow 1.10.1 Xcode 8.2 (8C38) Node v4.6.0 Java 1.7.0_80