angular - storing - Uncaught(en promesa): cordova_not_available en Ionic 2
error uncaught in promise): error cordova_not_available error cordova_not_available (6)
Cuando ejecuto la aplicación iónica con ionic serve -l
, obtengo este error:
Error de tiempo de ejecución
Uncaught (en promesa): cordova_not_available
Apilar
Error: Uncaught (in promise): cordova_not_available
at v (http://localhost:8100/build/polyfills.js:3:4864)
at s (http://localhost:8100/build/polyfills.js:3:4289)
at s (http://localhost:8100/build/polyfills.js:3:4112)
at http://localhost:8100/build/polyfills.js:3:4652
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:10284)
at Object.onInvokeTask (http://localhost:8100/build/main.js:38692:37)
at t.invokeTask (http://localhost:8100/build/polyfills.js:3:10220)
at e.runTask (http://localhost:8100/build/polyfills.js:3:7637)
at i (http://localhost:8100/build/polyfills.js:3:3707)
at HTMLDocument.invoke (http://localhost:8100/build/polyfills.js:3:11437)
otros detalles
Ionic Framework: 2.2.0
Ionic Native: 2.8.1
Ionic App Scripts: 1.1.4
Angular Core: 2.4.8
Angular Compiler CLI: 2.4.8
Node: 6.9.2
OS Platform: Windows 10
Navigator Platform: Win32
User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
HotSpot complemento HotSpot , con el siguiente comando:
ionic plugin add cordova-plugin-hotspot --save
cordova plugin add cordova-plugin-hotspot --save
Uso app.component.ts
import { Component } from ''@angular/core'';
import { Platform } from ''ionic-angular'';
import { StatusBar, Splashscreen,Hotspot,Network } from ''ionic-native'';
import { TabsPage } from ''../pages/tabs/tabs'';
@Component({
templateUrl: ''app.html''
})
export class MyApp {
rootPage = TabsPage;
constructor(platform: Platform) {
platform.ready().then(() => {
StatusBar.styleDefault();
Splashscreen.hide();
Hotspot.scanWifi().then((networks: Array<Network>) => {
console.log(networks);
});
})
}
}
Además, veo otras questions pero no resuelvo mi problema.
Descargue la aplicación Ionic View y luego ejecute el comando iónico de carga.
Luego podrá obtener una vista previa de la aplicación en su teléfono y las funciones nativas funcionarán.
Está accediendo a plugins nativos mientras prueba en el navegador. Para hacer que los complementos funcionen, debe usar un dispositivo real para probar.
Para hacer que tu código sea comprobable en el navegador (o que no se rompa al probar en el navegador), debes hacer una declaración if para verificar si Cordova está disponible:
if (this.platform.is(''cordova'')) {
// You''re on a device, call the native plugins. Example:
//
// var url: string = '''';
//
// Camera.getPicture().then((fileUri) => url = fileUri);
} else {
// You''re testing in browser, do nothing or mock the plugins'' behaviour.
//
// var url: string = ''assets/mock-images/image.jpg'';
}
EDITAR:
Como Ricky Levi menciona correctamente aquí abajo, Ionic admite la plataforma del browser
. Al usar esta plataforma, la mayoría de los complementos comunes pueden funcionar. Tenga en cuenta que algunos complementos no lo harían, por ejemplo, el complemento Barcode-scanner. Como lo indicará con una alerta, solicitando el valor que debe scanned
. Que perderá todo el uso-caso de un Barcode Scanner.
Para ejecutar la aplicación en el navegador
1.Verifique la plataforma
# import {Platform} from ''ionic-angular'';
# constructor(public platform:Platform) {
if (this.platform.is(''core'')) {
this.myPlatform = "Browser";
console.log(''I am on a web browser'')
} else {
this.mobileDevice = "True"
}
}
Use estas comprobaciones en sus métodos donde está implementando las dependencias de Cordova.
Solo se puede acceder a Cordova cuando ejecutas tu aplicación en un dispositivo real. Cuando prueba su aplicación en el navegador, no puede acceder a esos complementos nativos.
Puede verificar si se encuentra en un dispositivo real o en un navegador como ese:
if (this.platform.is(''cordova'')) {
// You are on a device, cordova plugins are accessible
} else {
// Cordova not accessible, add mock data if necessary
}
Esto solo te ayudará a probar las partes de tu aplicación que no dependen de los complementos de cordova. Para probar realmente tu aplicación, debes ejecutarla en un dispositivo o en el emulador.
Tal vez algo ha cambiado desde entonces, pero Ionic ahora admite el "navegador" como una plataforma (frente a simplemente navegar), lo que hace que los complementos Cordova estén disponibles en el navegador.
Para usarlo agregue la plataforma ionic cordova platform add browser
Y luego corres ionic cordova run browser
vs ionic serve
( ionic run browser
- al igual que ionic cordova run android
o ionic cordova run ios
)
este error se genera cuando intenta acceder a funcionalidades móviles en un dispositivo no móvil, por ejemplo, si desea acceder al GPS móvil que necesita Córdoba, es la cadena de enlace entre el código de JavaScript y la plataforma de destino
lo mejor que puede hacer es probar el entorno en el que se ejecuta si es cordova para que no caiga en la cordova no fondo de error
if (this.platform.is(''cordova'')) {
// You''re on a mobile device "IOS ANDROID WINDOWS"
// now you can call your native plugins
} else {
// You''re testing in a browser so you may want to use another method or run your code on a emulator
}