Проверьте, работает ли ionic, чтобы использовать условное выражение в программе.

Есть ли способ обнаружить, что ionic serve CLI запущен (а затем не на реальном устройстве) в программе, и использовать его как условие.

Моя проблема: у меня есть подключаемый модуль Cordova, который отправляет ответ в Cordova.

Когда я использовал Ripple, он предлагал выбрать значение обратного вызова, которое будет отправлено обратно в JavaScript (для эмуляции результата плагина).

Я заметил, что Ionic2 не делает этого, когда я запускаю браузер. Поэтому, чтобы упростить мою разработку и дать возможность протестировать ее в браузере (а не постоянно собирать на реальном устройстве), я хотел бы иметь возможность проверять программу, работает ли ionic serve CLI. Другими словами: проверьте, работает ли он на реальном устройстве или в обычном браузере.

Если он запускается в браузере, я использовал подсказку, чтобы попросить пользователя ввести фиктивное значение для результата плагина Cordova вместо реального плагина Cordova.


person nyluje    schedule 28.10.2016    source источник


Ответы (1)


См. документ по Платформа:

Проверьте, работает ли он на реальном устройстве или в обычном браузере.

Для этого вы можете использовать информацию о платформе:

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.

Итак, вы можете сделать что-то вроде этого:

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!");
    }
  }
}
person sebaferreras    schedule 28.10.2016
comment
Рад это слышать :) - person sebaferreras; 28.10.2016
comment
Мне также пришлось проверить мобильный веб: this.platform.is('mobileweb') || this.platform.is('core') - person pwagner; 10.04.2017
comment
Спасибо @pwagner, я добавил это к ответу :) - person sebaferreras; 10.07.2017
comment
Обратите внимание, что если вы когда-нибудь захотите превратить свой проект в PWA (Progressive Web App)... т. е. в родное приложение, которое может работать в браузере, вы столкнетесь с проблемами, используя эти операторы платформы. Использование приведенного выше решения не только проверяет, используете ли вы Ionic Serve, но и выполняет более общую проверку, чтобы увидеть, просматриваете ли вы приложение в веб-браузере на рабочем столе или на устройстве. - person Ian Holden; 03.10.2017