Etwas seltsam passiert .... Ich Phaserjs verwendet und versuchen, die Geräteklasse außer Kraft zu setzen:Globale Variable halten Altwert
let Device = (function(device)
{
return {
Android :function() {
return navigator.userAgent.match(/Android/i) == true;
//return Phaser.Device.Android != undefined;
},
BlackBerry: function() {
return navigator.userAgent.match(/BlackBerry/i) == true;
},
iOS: function() {
return navigator.userAgent.match(/iPhone|iPad|iPod/i) == true;
//return Phaser.Device.iOS == true;
},
Opera: function() {
return navigator.userAgent.match(/Opera Mini/i) == true;
},
Windows: function() {
return navigator.userAgent.match(/IEMobile/i) == true;
//return Phaser.Device.WindowsPhone != undefined;
},
firefox : function() {
return navigator.userAgent.toLowerCase().indexOf('firefox') > -1;
//return Phaser.Device.Firefox == true;
},
any: function() {
return (Device.Android() || Device.BlackBerry() || Device.iOS() || Device.Opera() || Device.Windows());
},
debug: function()
{
//console.log("Ios "+Phaser.Device.Firefox+" Dev:"+Phaser.Device);
return "Android:"+Device.Android()+" "+
"BlackBerry:"+Device.BlackBerry()+" "+
"iOS:"+Device.iOS()+" "+
"Opera:"+Device.Opera()+" "+
"Windows:"+Device.Windows()+" "+
"firefox:"+Device.firefox();
}
};
})(Phaser.device);
export default Device;
die Phaser.Device ein Singleton ist und wie $(document).ready
muss es zunächst initialisiert werden. die Funktion ist Phaser.Device.whenReady(foobar,this);
Das Problem ist, wenn ich den firefox oder iOS-Funktion aufrufen (Device.iOS()
) ich einen alten Wert und nicht der initialisierte Wert (wahr und falsch) erhalten
I Gerät wie dieses in einem Haupt-Skript importieren :
import Device from './helpers/GameDevice';
WARUM? Das Problem scheint ein Problem des Umfangs zu sein, aber ich weiß nicht was!
Was ist der alte Wert? –
Ich bin auf FF, also muss ich Firefox haben: WAHR und iOS: FALSCH aber ich bekomme FF: FALSCH und iOS: wahr, das ist unlogisch !!! – xeonarno
Die Browsererkennung kann aus verschiedenen Gründen fehlschlagen, einschließlich Add-ons. navigator.userAgent ist eine neue Sache, so dass es nicht immer funktioniert –