Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
离子2运行时错误:Cordova未定义_Cordova_Ionic Framework_Ionic2_Cordova Plugins_Ionic3 - Fatal编程技术网

离子2运行时错误:Cordova未定义

离子2运行时错误:Cordova未定义,cordova,ionic-framework,ionic2,cordova-plugins,ionic3,Cordova,Ionic Framework,Ionic2,Cordova Plugins,Ionic3,当我尝试在浏览器中运行我的Ionic v3.14.0混合应用程序时,出现运行时错误“Cordova未定义”。我按照波斯特的回答,运行了下面的命令 ionic cordova platform add browser ionic cordova run browser 上面的第一个命令将Platforms/browser添加到我的项目和它下面的文件夹结构中,我可以在Platforms/browser/www下找到cordova.js。 但是,当我运行上面的第二个命令时,会打开一个空白的chrom

当我尝试在浏览器中运行我的Ionic v3.14.0混合应用程序时,出现运行时错误“Cordova未定义”。我按照波斯特的回答,运行了下面的命令

ionic cordova platform add browser
ionic cordova run browser
上面的第一个命令将
Platforms/browser
添加到我的项目和它下面的文件夹结构中,我可以在
Platforms/browser/www
下找到
cordova.js
。 但是,当我运行上面的第二个命令时,会打开一个空白的chrome浏览器实例(尽管我的默认值是IE),并且在不显示应用程序的情况下保持空白。下面是来自终端的堆栈跟踪

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)
我已将
包含在index.html中

以下是我声明Cordova的ts文件: 数据服务.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)
  }

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

    this.dataService.getMainMenuItems();
在app.component.ts的构造函数中调用上面的getMainMenuItems()

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)
  }

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

    this.dataService.getMainMenuItems();

我怀疑上面堆栈跟踪中的输出
“加载cordova浏览器时出错”
。但我不确定这里的问题。有人能帮帮我吗,我在这里呆了一会儿。

我想你所指的链接是使用了爱奥尼亚1。请尝试以下步骤

  • 删除节点模块文件夹并运行
    npm安装-gionic@latest
  • 直接运行
    ionic service
    可在浏览器中运行
  • 如果要为设备运行,请安装cordova
    npm安装-g cordova

  • 请参阅

    com.salesforce.plugin不支持浏览器。它只支持移动平台(即Android和iOS)。

    您正在尝试在浏览器中运行应用程序吗?试试离子发球command@PrithiviRaj:谢谢你的回复。当我尝试使用
    ionic serve
    运行时,出现
    运行时错误:“cordova”未定义
    。通过升级到cordova 6.5.0,我在堆栈跟踪中解决了
    加载cordova浏览器时出错的问题。然而,当我尝试
    ionic cordova run browser
    遵循解决方案时,我仍然在Chrome中看到一个空白页面,我能够使用
    ionic cordova run browser
    在浏览器中打开应用程序。然而,当我尝试
    离子服务-l
    时,我得到运行时错误
    “cordova”未定义
    。目前我只在平台下添加了浏览器。非常感谢您的帮助。再次感谢您的回复。我仍然收到相同的错误
    “cordova”未定义
    离子服务-l运行。我正在运行Ionic 3.14.0,我相信它是最新的。我应该在1npm安装-g之后安装项目依赖项吗ionic@latest`?是在更新爱奥尼亚版本升级完成后更新项目依赖项。爱奥尼亚发球-l“科尔多瓦”是未定义的感谢您的回应。我不需要为浏览器构建。我只需要为ios和android构建。但是,我使用
    ionic serve-l
    预览应用程序上下文中的更改。但在添加
    cordova.require
    后,我得到一个错误,即“cordova”未定义。所以我认为添加浏览器作为平台是一种变通方法。在这种情况下,我只想在应用程序外观中的浏览器中预览应用程序,我认为我必须使用
    ionic serve-l
    ,但被“cordova”阻止的是未定义的错误。你能建议一个解决方法吗?如果你只是想预览UI,那么在“cordova undefined error”页面上。。您将在右上角找到“关闭”选项。这将关闭错误对话框,您的UI将再次可见。希望这有帮助!谢谢你的回复。我还需要测试涉及salesforce的功能。根据我的发现,
    ionic serve-l
    无法进一步帮助您,因为它不支持cordova。所以我从android emulator开始。我对设置仿真器感到震惊,错误如下:
    emulator:error:x86仿真当前需要硬件加速!请确保“英特尔HAXM”已正确安装并可用。CPU加速状态:此计算机上未安装HAXM
    。Android SDK管理器表示英特尔x86仿真器加速器(HAXM安装程序)6.2.1与windows不兼容。有什么想法吗?检查您系统的BIOS,需要启用虚拟化才能使HAXM工作。谢谢您的评论。我从英特尔Windows版下载了HAXM,现在它可以工作了。