Search code examples
codenameone

Simulator hangs con execute browserComponent.executeAndReturnString("navigator.userAgent"


On simulator App hangs on execute browserComponent.executeAndReturnString("navigator.userAgent")

        BrowserComponent browserComponent = new BrowserComponent();
        String userAgent = (String) browserComponent.executeAndReturnString("navigator.userAgent");
        String userAgent = "";
        if (userAgent == null) {
            userAgent = "";
        }

On console logs:

Using:
JCEF Version = 83.4.0.260
CEF Version = 83.4.0
Chromium Version = 83.0.4103.106
initialize on Thread[AWT-EventQueue-0,6,main] with library path C:\Users\Kandy\.codenameone\cef\lib\win64
Added scheme search://
Added scheme client://
Added scheme cn1stream://

DevTools listening on ws://127.0.0.1:53523/devtools/browser/2da17f15-4c86-45d2-98d2-c853b71d3d7a
AppHandler.stateHasChanged: NEW
AppHandler.stateHasChanged: INITIALIZING

Solution

  • Although this API wasn't deprecated its usage is strongly discouraged in the JavaDocs in favor of this.

    Try:

    bc.execute("navigator.userAgent", userAgent -> {
       // ... 
    });
    

    Notice that user-agent is something you submit/set in the browser component so you can determine it.