带有科尔多瓦插件的 Angular-cli 错误



当我使用 ng-build 构建 Angular 4 应用程序时,当我尝试访问 device.uuid 时出现以下错误:

/navigation.component.ts (14,5):找不到名称"device"。

我在 TS 文件中引用的所有插件都会导致此错误。我不知道如何在Angular-CLI中正确使用Cordova和Cordova插件。我已经将 cordova.js 和插件的脚本文件编写到 angular-cli.json 的脚本部分,但没有成功。我只在任何地方找到离子的例子。

问题在于 Cordova 脚本和插件脚本实际上仅在应用程序运行时可用,而不是在编译时可用。这就是为什么角度 cli 并不真正了解脚本的原因。即使我在脚本部分输入了这些脚本,在 device.uuid 上也找不到设备。我还通过 @types/.....Visual Studio Code 跳转到正确的声明文件。

你不需要在你的 angular-cli 中包含 cordova 插件。

首先,确保你在索引中调用了科尔多瓦.js.html。 <script src="cordova.js"></script> .

之后,如果您想要为 android 构建,您还需要在索引中指定基本路径.html <base href="file:///android_asset/www/" />

然后在你的 cordova 应用程序中安装一个 cordova 插件,并在你的 angular ts 中声明它,例如:declare var device:any;如果你想调用设备,你需要使用 cordova deviceready 事件侦听器:

declare var device:any;
export class ExampleClass {
    constructor(){
      document.addEventListener("deviceready", this.onDeviceReady, false);
    }
    onDeviceReady() {
        console.log(device.cordova);
    }
}

仅当您在移动设备上运行应用时,才能使用此功能。

最新更新