【问题标题】:How to combine Cordova, Crosswalk and Ionic framework如何结合 Cordova、Crosswalk 和 Ionic 框架
【发布时间】:2014-11-06 09:05:12
【问题描述】:

我正在尝试创建一个结合上述项目的移动应用程序,但我不知道该怎么做。

这是我找到的 2 个选项:

  1. 使用https://github.com/MobileChromeApps/mobile-chrome-apps - 我的问题是它似乎还没有准备好生产。 (有人告诉我是,但我找不到任何支持)。
  2. 创建一个新的 ionic 项目,然后将 Cordova 添加到其中,然后清空platforms/android/CordovaLib/ 文件夹并从 Crosswalk 移入其中的文件(如 https://www.thepolyglotdeveloper.com/2014/10/use-crosswalk-ionic-framework-android-apps/ 中所述) - 这个解决方案非常简单,但看起来有点对我来说很老套...

我应该使用哪个选项?还有其他选择吗?

干杯,

----更新----

Ionic 已经在他们自己的 CLI 中整合了 Crosswalk 的功能,请在http://ionicframework.com/blog/crosswalk-comes-to-ionic/查看它

【问题讨论】:

标签: android cordova google-chrome-app ionic-framework crosswalk-runtime


【解决方案1】:

关于人行横道

Crosswalk 支持是我们希望在今年年底之前默认提供给 vanilla cordova 的东西。您今天可以按照 cordova-android 4.0 开发分支上的工作开始尝试这个。应该可以将此平台(和所需的插件)直接添加到新的 ionic 项目中。

Chrome Apps for Mobile 与 cordova-cli 兼容,并且默认情况下确实已经捆绑了 Crosswalk。与 vanilla cordova 的主要区别在于应用程序必须遵循 Chrome 打包应用程序结构(具有清单和后台脚本),但可以获得在桌面 Chrome 上运行的好处。查看更长的答案here。 (我不会过多阅读开发者预览标签。我们只是喜欢将所有内容称为 beta ;)

目前crosswalk-project.org提供的cordova workflow没有使用cordova多平台应用结构。它直接使用cordova-android 本机应用程序模板。这意味着您将无法使用cordova cli,也无法使用ccaionic 等下游。显然你也不能添加其他平台,升级会更困难,管理插件也有点复杂(你必须直接使用plugman 工具)。

目前没有使用cordova+crosswalk进行开发的选项,这并非没有一些权衡。

关于 Cordova、Ionic、Chrome Apps for Mobile (etc) 项目之间的兼容性

大多数科尔多瓦下游项目“大部分”与 cli 兼容。例如。 cca cli(由 Chrome Apps for Mobile 使用)支持 createplugin addplatform add 等命令——因此它可以安装 ionic 插件。反之亦然,Chrome Api for Mobile 是 developed as cordova plugins,可以使用它们各自的 cli 添加到 Ionic 或 cordova 项目中。

大多数下游也使用相同的项目目录结构(plugins/platforms/www/hooks/ 等),因此您通常可以在一定程度上在一个项目中混合使用各种 cli。

也就是说,cca 需要自定义 cli 的原因是因为我们对您的 cordova 项目进行了一些非标准的修改,这些修改还没有被 vanilla cordova 直接支持。 Ionic 也是如此。

我曾在各种cordova 聚会上建议,像 Ionic、PhoneGap 和 CCA 这样的下游项目应该一起发挥更好的效果 - 所以你的问题是正确的。我们大部分是兼容的,但找出差异目前留给开发人员作为练习。

【讨论】:

  • 很好的答案,非常感谢!我会在接下来的几个小时/几天左右消化它,如果你不介意的话,我可能会和其他几个人一起回来:D 顺便说一句,这很有趣,b4 问我的问题我看到了你关于移动版 Chrome 应用程序的答案并想联系你,现在你问我关于 USB 的事(没有把它连接到你……我猜图片比尼克斯更好),这个故事的寓意,它很有帮助;)
  • 好的,所以我在其 www 文件夹中使用 Ionic 设置 cca 项目(保留 cca manifest 和 background.js 文件),当我尝试运行它时,它正在加载但我得到 Uncaught TypeError: Cannot read property未定义的“键盘”(app.js:14),发生的情况是 window.cordova.plugins 未定义(window.cordova 已定义)。我已经从 index.html 中注释掉了 cordova.js
  • 哦,最后一个问题是为了确定,cca 适用于 Android 4.X 和 iOS6+(包括 iOS8),对吗?
  • 我创建了一个关于这个问题的新问题,它更详细地描述了它stackoverflow.com/questions/26949456/…,如果你能快速浏览一下,那就太棒了
【解决方案2】:

使用 XDK HTML5 跨平台开发 IDE 可能是集成 Crosswalk、Cordova 和 Ionic 的最佳方式。它内置了对 Crosswalk 的支持。我最近使用过它,它非常棒。这将使我们的工作更轻松。

来自 Crosswalk 网站:

如果您更喜欢使用图形集成开发环境 (IDE),免费的英特尔 XDK 提供了另一种为 Crosswalk Android 打包应用程序的方法。有关详细信息,请参阅Intel XDK website

【讨论】:

  • 好吧,最后我决定实际上 d/l 将 Cordova 与其结合的 Crosswalk 包,并将其 assets/www/ 内容替换为 ionic 项目的 www 文件夹内容(我构建根据离子手册)。我什至用一个不错的 Docker 完成了这一切:) 我标记你的问题是正确的,因为这似乎是最直接的方法(我想避免在我的“环境”中安装软件)
  • @NimrodYonatanBen-Nes 想知道您是否设法通过 docker 映像使用 USB,或者只是将最终的应用程序导出到另一台机器?
  • @mmocny 是的,USB 直接连接到 docker,稍后会发布方法(我现在不在我的开发站...)
  • @NimrodYonatanBen-Nes 我真的很感激,特别是如果你有 OSX/Windows 的答案。我看到了一些聪明的方法来让它只在 linux 上工作。
  • @mmocny 哦,真可惜,我用的是 linux……以防万一它对你有帮助,我所做的就是添加到 docker run:--privileged -v /dev/bus/usb:/dev/总线/usb 更多信息可以在docs.docker.com/reference/run/… 找到,因为你甚至可以从它的 4 linux 的 url 中找到...
【解决方案3】:

youtube 上的这个人制作了一个很好的、直接的教程,对我有用:https://www.youtube.com/watch?v=0I1OjJLVLMo

结果非常棒,值得努力让它发挥作用。

这家伙说 CrossWalk 对运行低于 Android 4.4(添加 Chromium 时)的任何东西都有很大的影响。

祝你好运。

【讨论】:

  • 实际上我写的第二个链接是由制作该视频的同一个人撰写的一篇文章,但当我再次尝试嵌入人行横道时会检查它(或使用 cca,因为我在那里遇到了问题好吧)。谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-08
  • 1970-01-01
  • 2015-02-05
相关资源
最近更新 更多