2 votes

Erreur d'exécution Ionic 2 : Cordova est indéfini

Lorsque j'ai essayé d'exécuter mon application hybride Ionic v3.14.0 dans le navigateur, j'ai obtenu l'erreur d'exécution "Cordova is undefined". J'ai suivi este et exécute les commandes suivantes

ionic cordova platform add browser
ionic cordova run browser

La première commande ci-dessus a ajouté Platforms/browser à mon projet et à une structure de dossiers en dessous et je peux trouver cordova.js sous Platforms/browser/www . Cependant, lorsque j'exécute la deuxième commande ci-dessus, une instance vierge du navigateur Chrome s'ouvre (bien que mon navigateur par défaut soit IE) et reste vierge sans afficher l'application. Ci-dessous se trouve la trace de pile du terminal.

PS C:\Data\Per\Biz\Ionic\MyApp> ionic cordova run browser
Running app-scripts build: --platform browser --target cordova
[00:47:27]  build dev started ...
[00:47:27]  clean started ...
[00:47:27]  clean finished in 12 ms
[00:47:27]  copy started ...
[00:47:27]  deeplinks started ...
[00:47:28]  deeplinks finished in 113 ms
[00:47:28]  transpile started ...
[00:47:31]  transpile finished in 3.71 s
[00:47:31]  preprocess started ...
[00:47:31]  preprocess finished in 1 ms
[00:47:31]  webpack started ...
[00:47:32]  copy finished in 4.39 s
[00:47:41]  webpack finished in 9.49 s
[00:47:41]  sass started ...
[00:47:42]  sass finished in 1.40 s
[00:47:42]  postprocess started ...
[00:47:42]  postprocess finished in 16 ms
[00:47:42]  lint started ...
[00:47:42]  build dev finished in 15.21 s
> cordova run browser
Error loading cordova-browser

Running command: cmd "/s /c "C:\Data\Per\Biz\Ionic\MyApp\platforms\browser\cordova\build.bat""

Cleaning Browser project
[00:47:46]  lint finished in 4.18 s
Running command: cmd "/s /c "C:\Data\Per\Biz\Ionic\MyApp\platforms\browser\cordova\run.bat --nobuild""
Static file server running @ http://localhost:8000/index.html
CTRL + C to shut down
200 /index.html (gzip)
200 /cordova.js (gzip)
200 /build/main.js (gzip)
200 /build/polyfills.js (gzip)
200 /build/main.css (gzip)
200 /cordova_plugins.js (gzip)
200 /plugins/cordova-plugin-device/www/device.js (gzip)
200 /plugins/cordova-plugin-device/src/browser/DeviceProxy.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.plugin.oauth.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.plugin.network.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.plugin.sdkinfo.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.plugin.smartstore.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.plugin.smartstore.client.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.plugin.sfaccountmanager.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.plugin.smartsync.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.util.bootstrap.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.util.event.js (gzip)
200 /plugins/ionic-plugin-keyboard/www/browser/keyboard.js
200 /plugins/com.salesforce/www/com.salesforce.util.exec.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.util.logger.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.util.promiser.js (gzip)
200 /plugins/com.salesforce/www/com.salesforce.util.push.js (gzip)
200 /plugins/cordova-plugin-splashscreen/www/splashscreen.js (gzip)
200 /plugins/cordova-plugin-splashscreen/src/browser/SplashScreenProxy.js (gzip)
200 /config.xml (gzip)
404 /screen
200 /build/vendor.js (gzip)
200 /assets/icon/favicon.ico (gzip)

J'ai inclus <script src="cordova.js"></script> dans index.html

Ci-dessous se trouvent mes fichiers ts où j'ai déclaré Cordova : data-service.ts

import { Injectable } from '@angular/core';
import { Http, Response } from '@angular/http';
import 'rxjs/add/operator/map';

declare let cordova:any;

/*
  Generated class for the DataServiceProvider provider.

  See https://angular.io/guide/dependency-injection for more info on providers
  and Angular DI.
*/
@Injectable()
export class DataServiceProvider {
  indexSpecs:any[];
  soupName = "menuItems"; 

  constructor(public http: Http) {
    console.log('Hello DataServiceProvider Provider');
  }

  getMainMenu(){
    return this.http.get('assets/data/mainmenu.json')
    .map((response:Response)=>response.json().Categories);
  }

  getMainMenuItems() {
    this.registerSmartStoreSoup();
  }

  registerSmartStoreSoup() {
    this.indexSpecs = [{path:"Name",type:"string"},{path:"Id",type:"string"}];
    cordova.require("com.salesforce.plugin.smartstore").registerSoup(this.soupName,this.indexSpecs,this.successCallback,this.errorCallback);
  }

  successCallback() {
    console.log("Soup "+this.soupName+" Created Successfully");
  }

  errorCallback(err) {
    console.log("Error Creating "+this.soupName+":"+err)
  }

}

getMainMenuItems() ci-dessus est appelée dans le constructeur de app.component.ts

constructor(public platform: Platform, public statusBar: StatusBar, public splashScreen: SplashScreen, public dataService: DataServiceProvider) {
    this.initializeApp();

    this.dataService.getMainMenuItems();

Je me méfie des résultats "Error loading cordova-browser" dans la trace de pile ci-dessus. Mais je ne suis pas sûr du problème. Quelqu'un peut-il m'aider, je suis frappé ici depuis un moment.

0voto

Prithivi Raj Points 1785

Le lien auquel vous faites référence utilise Ionic 1, je suppose. Essayez les étapes ci-dessous.

  1. supprimez le dossier node module et exécutez npm install -g ionic@latest
  2. courir ionic serve directement dans le navigateur.
  3. installez cordova si vous voulez fonctionner pour les appareils npm install -g cordova

veuillez vous référer au documentation officielle pour les commandes

0voto

Lokkesh Points 462

Le plugin com.salesforce.plugin Ne prend pas en charge les navigateurs. Il ne prend en charge que les plateformes mobiles (c'est-à-dire Android et iOS).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X