针对ios开发PhoneGap 3.5。*插件的工作流程是什么?

问题描述:

我正在为iOS和Android开发PhoneGap 3.5.0应用程序。我想用本机代码编写一些功能,所以我一直在考虑创建一个插件。针对ios开发PhoneGap 3.5。*插件的工作流程是什么?

我跟着Plugin Development Guide和所有的代码工作正常;我可以通过插件公开的JS api调用本地函数。

我的问题是如何从这里继续发展。现在我只是手动将插件类添加到项目中(我正在为iOS开发插件,所以我现在不关心android)。看起来我应该做的是将插件代码放在一个类似于this example的单独回购库中,然后使用CLI工具将其添加到应用程序中。

我这样做,和插件被添加到应用程序。但是,我不知道如何继续更改插件,测试它们,并且在插件回购中更改插件后更新应用中的插件文件。

这是什么意图/建议的工作流程?它是否直接在应用程序中从XCode更改插件文件,然后将它们每次都复制到插件回购?

+1

现在的工作流程很差。我提出的最好的方法是首先在项目中开发插件,然后抽出所有相关项目并打包完成的插件。否则,每次更改测试时,都可以继续删除并添加插件。这可能非常耗费精力。 –

+0

@DawsonLoudon这是验证到目前为止我发现的。我一直在考虑将插件添加为git子模块,并且将钩子文件从平台文件夹复制到子模块,以便它们始终保持同步。另外,你是否知道为什么当你修改项目级别的插件文件和cordova build时,它不会将它们复制到平台上? – SuitedSloth

+1

'另外,你是否知道为什么当你修改项目级别的插件文件和一个cordova构建它不会将它们复制到平台?'我不是100%确定,但我相信项目级别的唯一原因保留插件文件是为了将另一个平台添加到项目中。 –

我一直在以同样的方式做或多或少的事情。我通常开始一个项目,其中cordova create myplugintest,然后cordova platform add ios,并包括我的其他插件之一,例如有一个kickstart cordova plugin add https://github.com/EddyVerbruggen/Toast-PhoneGap-Plugin。然后通过运行cordova prepare将插件源复制到平台文件夹,并通过运行cordova build查看是否所有编译都正确。

然后我开始劈砍而去的JS和本地代码,创建我的新插件。当我很高兴的时候,我为这个插件创建了一个新的回购,复制一个老插件来获得一个起点(主要是为了plugin.xml和文件夹结构,所以我不犯愚蠢的错误)。然后复制来自myplugintest的文件。

然后我扔掉myplugintest项目,并创建一个新的,这次加入的新插件回购该插件。这有两个目的:测试插件和plugin.xml如何在一个闪亮的新项目中按预期工作。而且,这是我将用于在需要添加功能时进一步扩展插件的项目。 一旦我对变更感到满意,我会将具体更改复制到插件回购。这可以确保插件回购总是包含工作软件(测试代码在测试项目中)。 毫无疑问,您确实需要一个具有VCS集成的良好IDE,以便不会跟踪您的更改。

这一切听起来有点cucumbersome,但我个人没有这个工作流程的问题。

一点题外话 - 您使用的插件的例子是一个良好的开端,但不是一个有很多肉。它不会告诉你如何将错误返回给JS代码(以触发errorcallback)。另外,plugin.xml在平台标签内有一个js-modue标签。尽管在某些情况下这可能是有效的,但大多数情况下,js代码在所有平台上都是相同的,所以将其拉高一级更有意义。

+0

很好,这证实我们在同一页面上。我一直在寻找你的其他插件示例代码 - 伟大的资源。我正在考虑在cordova项目级别上将插件作为插件repo的git子模块。这样我可以更新sub,然后cordova prepare将它需要的文件复制到平台文件夹中。我希望最终能够自动化,并可能在某处发布脚本。 – SuitedSloth

+0

很想看到这一点。玩的开心! –

+0

有人应该制作一个脚本,为插件提取相关的源代码并在项目之外构建可安装的插件文件夹。 –