it-swarm.com.de

Überprüfen Sie, ob sich die ionische App im Entwicklungsmodus befindet (Browser).

Ich benutze ionic serve, um meine App auf localhost auszuführen.

wie kann ich wissen, wann ich in Browser und nicht in Android bin?

Ich habe es versucht:

navigator.platform // MacIntel
navigator.platforms // undefined
ionic.Platform.is('BROWSER') // false
navigator.userAgent // ...iPhone... => i'm in chrome device mode

Vielen Dank!

26
Shalev Shalit

Es gibt wahrscheinlich mehr als eine Möglichkeit, dies zu tun, aber eine einfache Möglichkeit ist, dass cordova nur für Android/iOS definiert wird

if (window.cordova) {
  // running on device/emulator
} else {
  // running in dev mode
}

Bearbeiten

Einige Texteditoren und TypeScript-Parser beschweren sich möglicherweise Property 'cordova' does not exist on type 'Window'. Um dies zu umgehen, können Sie Folgendes verwenden:

if ((<any>window).cordova) {
  // running on device/emulator
} else {
  // running in dev mode
}

Indem Sie explizit auf den Typ any umstellen, können Sie Transpilerfehler vermeiden und trotzdem das erreichen, was Sie versuchen.

68
Mirko N.

Die Überprüfung, ob window.location.hostname gleich localhost ist, funktioniert ebenfalls.

if(window.location.hostname === "localhost"){
    return 'http://localhost:8100/api/';
} else {
    return 'https://some-api.com/';
}
6
Jack

Ich habe gefunden, dass ich verwenden kann

ionic.Platform.platforms[0] == "browser"

um zu überprüfen, ob die Anwendung in einem Browser ausgeführt wird oder nicht.

Wichtig ist, dass ionic.Platform.platforms erst eingestellt wird, nachdem das $ionicPlatform.ready-Ereignis ausgelöst wurde.

6
Ygalbel

benutzen

if(ionic.Platform.isWebView()){
  console.log('i am in a browser webview!');
}

oder

console.log(ionic.Platform.platform());

Dadurch erfahren Sie, auf welcher Plattform Sie sich befinden. Webview oder Android oder iOS oder was auch immer.

3
Jess Patton

Nur eine kleine Korrektur zu Mirko N. Antwort.

TypeScript gibt tatsächlich einen Fehler zurück, wenn Sie Cordova direkt oder als untergeordnetes Fensterobjekt verwenden.

Die richtige Antwort ist zu überprüfen, ob Fenster Cordova als eigenes Eigentum hat.

if(window.cordova) //returns error "Property 'cordova' does not exist on type 'Window'."

if(window.hasOwnProperty('cordova')) //Proper Check

 enter image description here

0
ProllyGeek

In meiner Ionic 1-App (unter Verwendung der letzten Version 3.9.x, jedoch mit - type ionic1) wird ionic.Platform.platform (), wenn ich im Desktop bin, "linux" und nicht "browser" zurückgeben. Window.cordova ist jetzt im Browser vorhanden, aber Sie können überprüfen, ob window.cordova.platformId == 'browser' ist. Es scheint hier zu funktionieren.

0
felipeaf