我目前正在开发一款Phonegap Cordova 2.5应用,需要用户拍照并将其上传到我们的服务器。我正在使用PhoneGap以避免任何Android特定编码(并可能在某天在iOS上发布)。
事实证明,Android经常(但并不总是)在拍照时杀死我的应用程序,当相机模块返回图片时,我的基本应用程序从头开始恢复,并且不会调用任何回调方法。任何对新拍摄照片的引用都将丢失,请参阅此处的帖子:
Taking a picture from the camera fails 20% of the time
常见的解决方法似乎是原生Android代码。这引出了我的问题:如果我使用的第一个也是唯一一个Phonegap模块(相机)需要一些严重的黑客攻击,我为什么要使用Phongap?我知道这甚至不是Phonegap的“错误”,而是Android生命周期设计,但仍然:我怎样才能捍卫这种架构选择?使用HTML,CSS和JS将它们全部缩减为可重用的前端吗?我应该切换到原生Android吗?
答案 0 :(得分:1)
回答我自己的问题:PhoneGap在很多方面都很棒,所以有很多论据可以捍卫它。最值得注意的是,整个UI只需要编码一次,并且是Javascript和CSS,有许多开发人员不需要学习另一种语言。不要低估“easyiness”的价值,如果你需要编写一个相对简单的应用程序代码,不要费心去做本机。 PhoneGap会很好。
在我的情况下,我想要构建的应用程序围绕拍照。因此,我不会在一些罕见的用例中使用相机来增加用户体验,但它却是应用程序中最重要的部分。在这种情况下,我想推荐的方法是本地化。这就是我最终所做的。
另一种方法是使用名为“Foreground Camera”的PhoneGap插件。
PROs:集成中的无缝照片。用户实际拍摄了您的应用内的图片。
CONs:默认情况下,您将失去所有相机的功能(变焦,前置摄像头,闪光灯等),因此您需要进行严格的编码工作才能手动实现其中一些功能。