Try searching on the mail list, there should be information there. And probably in JIRA too.
I’m a little familiar with the addJavascriptInterface bridge, but not with the prompt bridge, there are several bridges and the prompt bridge was used in old android versions only and I never looked into it. El El sáb, 17 ene 2026 a las 18:28, Niklas Merz <[email protected]> escribió: > Great thank you. This confirms a lot I found during my digging. > > You're right I've opted to hack into the prompt method to use it with > Websockets because this is currently the only thing that's possible with > Servo. Servo lacks addJavascriptInterface and evaluateJavascript today. > > Did you ever find how out how these messages are built? What things like > "51 S11 Battery..." mean? I suppose "S" is for success but I'll still > have to figure out how to correctly split and parse these prompt > messages. > > On January 17, 2026, "[email protected]" <[email protected]> > wrote: > > I don't think there is any documentation but I've done quite a bit of > > reverse engineering myself in the past and might be able to loosely > > explain the architecture. There are 3 classes that are probably of > > interest to look at in the cordova-android framework: > > > > 1. SystemWebChromeClient > > 2. SystemExposedJsApi > > 3. CordovaBridge > > > > Based on my understanding, SystemWebViewEngine contains the entry > > point > > into native side, by using the onJsPrompt hook. This method is > > normally > > to handle window.prompt calls but Cordova uses it to deliver a payload > > to native. The payload is passed to CordovaBridge and it decides if it > > is a bridge call or if it is a regular window.prompt call. > > > > If it is a bridge call, it does some sanity access checks and pushes > > the messages through a queue system which gets routed to plugins > > (somehow). > > > > SystemExposedJsApi has some JavascriptInterface methods, which are > > methods exposed directly to the webiew, and JS can call these methods > > directly which controls bridge state. It also includes a `exec` > > JavascriptInterface method, which seems to deliver a payload to the > > bridge, similar to the prompt method. Both of these might be used, and > > to me it looks like the bridge call implementation strategy might be > > swapped based on certain conditions. > > > > Although based on your log snippets, it seems like it is using the > > prompt method. > > > > Hopefully this at least puts your focus in the right direction. > > > > On Sat, 2026-01-17 at 17:45 +0100, Niklas Merz wrote: > > > Hey everyone, > > > > > > As some of you know I'm currently trying out if Servo can be used in > > > Cordova Android. I've made some good progress on my plugin [1] and > > > now I > > > could use some help with getting plugins going. > > > > > > If got the bride working with some hacky glue code and now some > > > messages > > > like this are exchanged: > > > > > > [ServoWS] Call to prompt [] > > > gap:[1670500204,"Battery","start","Battery1880458036"] servo- > > > bridge.js > > > < > > > <http://localhost:5000/plugins/cordova-plugin-servo- > > webview/www/servo>- > > > bridge.js> [ServoWS] Intercepted gap: call [1670500204, "Battery", > > > "start", "Battery1880458036"] servo-bridge.js > > > < > > > <http://localhost:5000/plugins/cordova-plugin-servo- > > webview/www/servo>- > > > bridge.js> [ServoWS] Call to prompt [false] > > > > > gap:[1670500204,"Geolocation","getPermission","Geolocation1880458037" > > > ] > > > servo-bridge.js <<http://localhost:5000/plugins/cordova-plugin- > > servo>- > > > webview/www/servo-bridge.js> [ServoWS] Intercepted gap: call > > > [1670500204, "Geolocation", "getPermission", > > "Geolocation1880458037"] > > > servo-bridge.js <<http://localhost:5000/plugins/cordova-plugin- > > servo>- > > > webview/www/servo-bridge.js> [ServoWS] Received message: 51 S11 > > > Battery1880458036 {"level":59,"isPlugged":true}29 S01 > > > Geolocation1880458037 n36 servo-bridge.js > > > < > > > <http://localhost:5000/plugins/cordova-plugin-servo- > > webview/www/servo>- > > > bridge.js> > > > Can someone can point me to any kind documentation on how the plugin > > > bridge works? I've never looked into the part and if someone has any > > > info I could save some time digging through the code and reverse > > > engineering stuff. > > > > > > The chances are slim, I know, but maybe there is something out > > there. > > > > > > Cheers, > > > Niklas > > > > > > > > > [1] <<https://github.com/NiklasMerz/cordova-plugin-servo-webview>> > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] >
