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+unsubscribe@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.
No comments:
Post a Comment