我们可以用Electron用Node API包装/修改Cordova FS API,使它们在桌面环境下工作吗?

时间:2016-11-25 12:17:41

标签: node.js cordova electron

我有一个角度/离子应用程序,建立在多个移动平台的cordova之上。现在我想将它扩展到桌面。我在电子中运行了Web视图文件夹(www/),除了一些cordova文件系统API之外,一切正常。

对我来说有没有办法,以便我可以使用电子中提供的Node FS API包装/修改这些cordova API?

1 个答案:

答案 0 :(得分:2)

Apache有一个cordova-electron项目,但是文档很少。我不知道任何其他类似的项目。

最有可能的是,您必须抽象出您的FS API调用,并创建自己的函数,以便在两种环境中完成所需的操作。您可能还会考虑文件系统布局中的其他一些差异。

例如,如果要读取文件并保存文件,可以创建两个函数:

readFile(name, callback) {
  if (RUNNING_IN_ELECTRON) {
    // use Node API
  } else {
    // use Cordova API
  }
}

writeFile(name, data, callback) {
  if (RUNNING_IN_ELECTRON) {
    // use Node API
  } else {
    // use Cordova API
  }
}

你可以检测到你在Electron中运行,例如通过测试process.versions['electron']或者您可以测试您是否在Cordova中运行,例如测试window.cordova