How to access non standard objects in Elemental2?

119 views
Skip to first unread message

Michael Harray

unread,
Aug 16, 2020, 5:41:18 PM8/16/20
to GWT Users
Hello, I'm currently working on PWA functionality in our GWT app, trying to utilise Elemental2 / JSInterop where possible instead of writing javascript. To detect if the app is launched in PWA mode on IOS, this is the recommended javascript:

const isInStandaloneMode = () => ('standalone' in window.navigator) && (window.navigator.standalone);  

However there appears to be no DomGlobal.window.navigator.standalone object in Elemental2, as I'm guessing it has not been standardised. 

So my question is, is there a recommended way to define this object so that I can replicate the above javascript without resorting to JSNI? Or is there another way to achieve this?

Thanks

Thomas Broyer

unread,
Aug 16, 2020, 5:53:28 PM8/16/20
to GWT Users
Something like:

public static boolean isInStandaloneMode() {
 
var navigator = Js.asPropertyMap(DomGlobale.window.navigator);
 
return navigator.has("standalone") && Js.isTruthy(navigator.get("standalone"));
}

The navigator.get("standalone") translates to navigator["standalone"] rather than navigator.standalone, but that should be strictly equivalent (navigator is a browser object, so you're never really sure, but IIRC things were only "strange" in IE). You could use JsInterop for that part if needed.

Michael Harray

unread,
Aug 19, 2020, 6:58:38 PM8/19/20
to GWT Users
Great thank you, works a treat :)
Reply all
Reply to author
Forward
0 new messages