2016-10-28 4 views
8

Czy istnieje sposób, aby wykryć, że CLI uruchamia w programie (a nie na prawdziwym urządzeniu) i używa go jako warunkowego.Sprawdź, czy działa jako "ionic serve", aby użyć warunku w programie.

Mój problem: Mam wtyczkę Cordova, która odsyła odpowiedź do Cordova.

Kiedy korzystałem z usługi Ripple, zaproponowano, aby wybrać wartość wywołania zwrotnego, która ma zostać wysłana z powrotem do JavaScript (w celu emulowania wyniku wtyczki).

Zauważam, że Ionic2 tego nie robi, gdy uruchamiam przeglądarkę. Aby ułatwić pracę programisty i umożliwić jego testowanie w przeglądarce (i nie budować na stałe do rzeczywistego urządzenia), chciałbym móc sprawdzić program, jeśli uruchomiony jest interfejs CLI ionic serve. Innymi słowy: Sprawdź, czy działa na prawdziwym urządzeniu lub zwykłej przeglądarce.

Jeśli działa w przeglądarce, użyłem monitu, aby poprosić użytkownika o wprowadzenie fałszywej wartości dla wtyczki Cordova zamiast prawdziwej wtyczki Cordova.

Odpowiedz

11

Zobacz Platform Doc:

sprawdzić, czy jest uruchomiony na rzeczywistym urządzeniu lub zwykłej przeglądarki.

Można wykorzystywać informacje platformy, aby to zrobić:

Platform Name Description 
android   on a device running Android. 
cordova   on a device running Cordova. 
core   on a desktop device. 
ios    on a device running iOS. 
ipad   on an iPad device. 
iphone   on an iPhone device. 
mobile   on a mobile device. 
mobileweb  in a browser on a mobile device. 
phablet   on a phablet device. 
tablet   on a tablet device. 
windows   on a device running Windows. 

Więc można zrobić coś takiego:

import { Platform } from 'ionic-angular'; 

@Component({...}) 
export MyPage { 
    constructor(public platform: Platform) { 

    if (this.platform.is('mobileweb') || this.platform.is('core')) { 
     // This will only print when running on desktop 
     console.log("I'm a regular browser!"); 
    } 
    } 
} 
+1

dzięki, to załatwia sprawę! – nyluje

+0

Miło to słyszeć :) – sebaferreras

+3

Musiałem też sprawdzić "mobileweb": 'this.platform.is ('mobileweb') || this.platform.is ('core') ' – pwagner

Powiązane problemy