On Sunday, August 16, 2020 at 11:41:18 PM UTC+2, Michael Harray wrote:
>
> 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?
>

I would simply use jsinterop-base' JsPropertyMap: 
https://javadoc.io/doc/com.google.jsinterop/base/latest/jsinterop/base/JsPropertyMap.html
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.

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to google-web-toolkit+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit/5fa76882-968c-4a73-8731-516dd50b3c85o%40googlegroups.com.

Reply via email to