Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.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
Angular 2与cordova插件_Angular_Cordova_Cordova Plugins - Fatal编程技术网

Angular 2与cordova插件

Angular 2与cordova插件,angular,cordova,cordova-plugins,Angular,Cordova,Cordova Plugins,我正在使用Angular 2与cordova构建一个混合应用程序。我不使用离子,所以请不要参考它在所有。我在浏览器和手机上使用相同的角度代码。 我在Angular应用程序中放置了一个文件夹,其中包含cordova项目,当我调用cordova run android构建Angular应用程序并将其输出到www文件夹时,我使用了一个钩子脚本。 所有这些工作都很完美,应用程序构建成功,一切正常,但当我尝试使用插件时,问题来了 My index.html如下所示: <!doctype html&g

我正在使用Angular 2与cordova构建一个混合应用程序。我不使用离子,所以请不要参考它在所有。我在浏览器和手机上使用相同的角度代码。 我在Angular应用程序中放置了一个文件夹,其中包含cordova项目,当我调用
cordova run android
构建Angular应用程序并将其输出到www文件夹时,我使用了一个钩子脚本。 所有这些工作都很完美,应用程序构建成功,一切正常,但当我尝试使用插件时,问题来了

My index.html如下所示:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
  <title>Servizio Feste</title>

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/png" href="favicon.png">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <script type=”text/javascript” src=”cordova.js”></script>
</head>
<body>
  <ngx-app></ngx-app>
  <style>
    .spinner { /* styles */ }
    .global-spinner { /* styles */ }
  </style>
  <div id="nb-global-spinner" class="global-spinner">
    <div class="spinner"></div>
  </div>
</body>
</html>
我安装了phonegap条形码扫描仪插件,并尝试在以下组件中使用它:

import { AppToasterService } from './../../../../services/toaster.service';
import { Component } from '@angular/core';

declare var cordova: any;

@Component({
  selector: 'qrcode',
  templateUrl: './qrcode.component.html'
})
export class QRCodeComponent {

  constructor(
    private toasterService: AppToasterService
  ) { }

  scanQRCode() {
    cordova.plugins.barcodeScanner.scan(result => {
      this.toasterService.success(result);
    }, error => this.toasterService.error('Error'));
  }

}
当我尝试调用scanQRCode()方法时,会弹出以下错误:

ReferenceError: cordova is not defined
我在stackoverflow中搜索了很多已经存在的问题,但每个人都提到了

 declare var cordova: any;
或者在index.html中加载cordova.js脚本,但我已经做了这些事情。 其他一些人说要在.angular-cli.json的“脚本”部分导入cordova.js,但我也尝试了这一点,它给了我一个编译错误,说找不到cordova.js。 我还试图等待main.ts中的“deviceready”事件引导应用程序,但该事件从未触发!
有人能帮我吗?我提前向您表示感谢。

这是最愚蠢的事情:我从一个网站复制了html脚本标记,并且引用以不同的方式编码。它是src=“cordova.js”,而不是src=“cordova.js”。

我认为您需要为调用barcodeScanner.scan创建interface.ts文件。您遇到编译时错误还是运行时错误?我没有遇到任何编译错误。在运行时尝试使用scanQRCode()函数时发生错误。我没有尝试使用ionic,因为我没有时间了解如何编写钩子函数以使用已编写的代码,因为ionic自己编译类型脚本
 declare var cordova: any;