Compruebe si la aplicación ionic está en modo de servicio de desarrollo(navegador)
Utilizo ionic serve
para ejecutar mi aplicación en localhost.
¿Cómo puedo saber cuando estoy en navegador y no en android?
Lo intenté:
navigator.platform // MacIntel
navigator.platforms // undefined
ionic.Platform.is('BROWSER') // false
navigator.userAgent // ...iPhone... => i'm in chrome device mode
¡Gracias!
6 answers
Probablemente hay más de una forma de hacerlo, pero una simple es que cordova
solo se definirá en Android/iOS para que pueda hacer
if (window.cordova) {
// running on device/emulator
} else {
// running in dev mode
}
Editar
Algunos editores de texto y analizadores de TypeScript pueden quejarse de que Property 'cordova' does not exist on type 'Window'.
Para solucionar esto, puede usar lo siguiente:
if ((<any>window).cordova) {
// running on device/emulator
} else {
// running in dev mode
}
Al enviar explícitamente a type any
puede evitar errores de transpiler, y aún así lograr lo que está tratando de hacer.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-11 05:29:17
Encontré que puedo usar
ionic.Platform.platforms[0] == "browser"
Para comprobar si la aplicación se está ejecutando en un navegador o no.
Lo importante, ionic.Platform.platforms
se establece solo después de que se dispara el evento $ionicPlatform.ready
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-11 13:06:31
Comprobando si ventana.ubicación.hostname es igual a localhost también funcionará.
if(window.location.hostname === "localhost"){
return 'http://localhost:8100/api/';
} else {
return 'https://some-api.com/';
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-09-29 17:16:46
Use
if(ionic.Platform.isWebView()){
console.log('i am in a browser webview!');
}
O
console.log(ionic.Platform.platform());
Eso te dirá en qué plataforma estás. Webview o Android o ios o lo que sea.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-06 16:02:44
Por ahora, en mi aplicación Ionic 1 (usando la última versión 3.9.x, pero con type tipo iónico 1), iónico.Plataforma.platform () cuando estoy en desktop devuelve "linux", no"browser". Y ventana.cordova ahora existe en el navegador, pero se puede comprobar si la ventana.cordova.platformId = = 'browser'. Parece que funciona aquí.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-27 01:23:11
Solo una pequeña corrección a Mirko N. respuesta.
Typescript realmente devolverá error si usa cordova directamente o como un hijo del objeto window.
La respuesta correcta es comprobar si window tiene cordova como propiedad propia.
if(window.cordova) //returns error "Property 'cordova' does not exist on type 'Window'."
if(window.hasOwnProperty('cordova')) //Proper Check
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-22 13:36:26