如何在Cordova应用程序开发工作流中使用特定于平台的插件?

5
我是一个新手,使用 Cordova 开发应用程序,但已经有很多工作做得很好。我刚刚成功地实现了 'phonegap-facebook-plugin'。 然而,按照说明,我将许多文件(来自 Facebook SDK 和插件)直接放入 /platform/ios/ 目录中 - 这意味着我的代码现在不够“灵活”,具体针对平台而言,而不是在根目录的 /www/ 目录中同时构建两个平台。 是否有更好的方法来组织我的文件和/或工作流程?我错过了什么步骤或技巧吗? 感谢任何帮助。
1个回答

3
从Cordova 3.x开始,有一个新的Cordova命令行界面,将极大地帮助您为多个操作系统组织代码。您将使用CLI创建一个项目,然后在主要的/www/文件夹中进行所有开发。然后,您可以使用CLI运行命令,将您的/www/代码复制到每个平台的web资源的适当位置(例如,对于Android,是/myApp/assets/www/)。请查看我的答案:应该在config.xml文件中声明phonegap插件吗?。我谈论了被创建的目录结构,如何版本控制/www/和/merges/文件夹,以及如何将/platforms/中的任何内容视为构建产物。(这个文件夹中的东西不一定是构建产物,但如果您正在做跨平台工作,这种方式非常有用。)
如果您只开发单个平台,或者正在对平台的本机部分进行修改,则您将在这些文件夹中更改内容。然而,我不推荐大多数人采用这种方法,因为绝大多数用例都是使用HTML5创建跨平台应用程序。
我一直在努力撰写文档,以使其更加清晰。新的概述指南应该会对您有所帮助:https://github.com/mbillau/cordova-docs/blob/30fb71d11b4db5d34b3ff1c48a16443d5fed1be3/docs/en/edge/guide/overview/index.md(如果您阅读后仍有疑问,请告诉我,以便我可以在文档中解答这些问题,并让所有人受益)。 编辑:我没有看到你的大部分问题是关于插件的。如果你有一个为Cordova 3.x更新的插件,那么你应该能够使用cordova plugin add ...安装它。这应该会将本地和.js文件复制到/plugins/文件夹中。然后当你执行cordova prepare时,它会将该插件的特定平台文件复制到特定平台文件夹中。所以你不必到处复制文件。我很确定你正在使用的插件不支持3.x,如果是这样的话...我真的不知道该告诉你什么。运行prepare应该只是复制文件,而不是擦除已经存在的文件...但我不确定。

MBillau - 你能否在这里看一下我的Cordova插件开发问题:https://dev59.com/T3nZa4cB1Zd3GeqPnDJP?我认为这个问题在Cordova文档中没有得到解决(甚至在维基上也没有)。 - ajh158
嘿,这是一个很好的问题。不幸的是,我对插件开发并不是很熟悉。我会考虑一下,并在几天内尝试回答你的问题,但同时,你可以在freenode上的#cordova和#phonegap上提问。我知道插件开发的故事确实需要改进,你可以利用这个机会帮助我们找出最佳的插件开发工作流程(以及其他方面,比如确定文档中的漏洞)。 - MBillau
MBillau - 谢谢。Mark Pruce - 抱歉在回答你的问题的评论中插话。给你们两个点赞! - ajh158
我认为文档应该包括一个使用案例的解释,即在iOS上选择插件X,在Android上选择插件Y的情况,其中涵盖:
  1. 如何安装仅适用于一个平台的插件X
  2. 如何在JavaScript中检查以便您有
if (platform is iOS) { objectX.methodOfX(); else if (platform is Android) { objectY.metofOfY(); }
- mico

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接