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 [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/google-web-toolkit/5fa76882-968c-4a73-8731-516dd50b3c85o%40googlegroups.com.