【问题标题】:Use Cordova Plugin in Angular 2 + Cordova app在 Angular 2 + Cordova 应用程序中使用 Cordova 插件
【发布时间】:2017-09-20 14:46:27
【问题描述】:

我有一个 Angular 2 应用程序,我正在将其构建到 cordova 并部署到 Android/IOS。我没有使用 ionic,我见过许多使用 ionic 的解决方案,但我现在无法将整个项目转换为 ionic。

到目前为止一切正常,除了我不知道如何使用cordova插件。具体来说,我正在尝试使用“cordova-plugin-file”将本地文件存储在设备上。

我不知道如何导入/访问插件文件或功能?我可能会遗漏一些关于科尔多瓦插件如何工作的东西。大多数教程只显示使用插件添加的任何功能,例如......

window.requestFileSystem(window.TEMPORARY, 5 * 1024 * 1024, function (fs) {
   console.log('file system open: ' + fs.name);
   createFile(fs.root, "newTempFile.txt", false);
}, onErrorLoadFs);

但是上面的代码破坏了角度 2,我得到了这样的错误。

 Property 'requestFileSystem' does not exist on type 'Window'.

很明显,有些东西没有得到正确的导入或尊重。很可能是因为 cordova 是 angular 2 应用程序的子文件夹。我运行ng build并将输出文件放入cordova文件夹中,所以当时它不知道cordova?

 Angular_2_project
 ├── cordova
 │   └── plugins
 ├── src
 │   └── index.html
 │   └── app
 │        └── html/ts files 

【问题讨论】:

  • 是否加载了cordova.js?
  • 可能不是,我想这可能是我的问题,你如何将 cordova.js 加载到 angular 2 中?它只是 index.html 中的脚本引用吗?
  • 是的..!!那是唯一的选择。如果它的 angular cli 项目则添加 angular cli.json。这导致了你的错误
  • 这是一个 Angular cli 项目。您是否将 cordova.js 添加到 "app": [{ "scripts": ["path/to/script/cordova.js"]... 我只需要 cordova.js 或插件文件吗?
  • 是的,需要添加脚本并添加cordova.js和插件文件。

标签: cordova angular cordova-plugins


【解决方案1】:

好像没有加载cordova.js。

添加cordova.js & Plugin 相关的.js

如果是 angular-cli.json,只需将它们加载到脚本中即可。

当你将它添加到你的 *.ts 文件中时,它会在 trans 时抛出一个错误 当你尝试构建它时。 为避免将其添加到 *.ts 文件开头的声明中。

示例: 我想在我的 ts 文件中使用 cordova.on。

我会写

declare var cordova:any 

【讨论】:

  • 感谢工作!但是,它确实会导致在浏览器中运行一些问题。这是可以预料的。为这些cordova插件启用打字稿也很好,但这是一个不同的问题
  • 欢迎您。让我知道哪些问题。肯定会有问题,因为只有 angular 2 和 cordova 确实是一个非常奇怪的组合
  • 嗨 Andrew Barta 和 Parth Ghiya,我遇到了同样的问题,我添加了设备插件。我清除了设备:任何;但是在浏览器中运行它时会抛出未找到设备的异常。请让我建议一些解决方案,或者请分享一些教程以遵循
  • 也许可以发布另一个问题并提供更多详细信息。有很多与cordova相关的东西在浏览器中不起作用,至少在没有强制的情况下,尝试部署到设备上看看错误是否消失。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多