使用Phonegap快速开发应用程序

时间:2012-11-16 10:08:11

标签: cordova

我已经阅读并分析了使用Phonegap创建应用程序的一些示例,我已经看到,如果我使用模拟器在Eclipse中工作,整个开发过程非常缓慢。

我想也许我可以在普通浏览器上开发所有JavaScript和模板的东西,在那里快速调试并创建屏幕,之后,当有时间为手机使用一些特殊的东西,如相机或数据库,然后将整个项目复制到asset / www文件夹,并在那里进行最终实现。

你怎么了?这会是可能的,还是我错过了什么?

5 个答案:

答案 0 :(得分:2)

你是对的,例如你可以......

  1. 使用html 5,javascript和css;
  2. 将其创建为网络应用
  3. 使用像jQuery Mobile这样的库,你将创建一个单页应用程序(在index.html中),jQuery Mobile将提供许多有用的手机用户界面功能(这将适用于不同的手机浏览器 - 这意味着手机差距可以创建针对不同平台的应用);
  4. 在浏览器中测试;
  5. 将Ripple Emulator添加到Chrome浏览器,以测试手机模拟器中的外观和功能;
  6. 将其作为可在手机上运行的网络应用进行测试;
  7. 如您所知,将所有网络应用程序文件复制到www文件夹中。
  8. 现在添加phoneGap功能,构建应用程序并开始在真实手机上进行测试;
  9. 我发现通过首先开发和测试它作为Web应用程序,我可以获得用户反馈并更快地修复错误。这是快速构建手机应用程序的好方法。

答案 1 :(得分:1)

对于Android开发,您确实需要使用实际设备。模拟器适用于iOS,但Android模拟器非常慢,并不像实际的最终用户体验。

您使用桌面浏览器走在正确的轨道上 - 刷新网页要比运行完整版本快得多。

我使用jekyll --auto --server生成app HTML,因此桌面预览总是在http上,这使得检测手机间隙非常容易。

以下是我的应用启动代码 - 完整的工作代码位于https://github.com/tqc/ChondricJS/blob/master/src/app.js

    if (settings.mightBePhoneGap && document.location.protocol == "file:") {
        // file protocol indicates phonegap
        app.isPhonegap = true;
        app.platform = "cordova";
        document.addEventListener("deviceready", function() {
            console.log("appframework deviceready");
            console.log(device.platform);
            app.isSimulator = device.platform.indexOf("Simulator") > 0;
            $(initInternal);
        }

        , false);
    } else {
        // no phonegap - web preview mode
        app.platform = "web"

        $(initInternal);
    }

在您的应用代码中,检查app.platform,这样您就不会尝试从桌面浏览器中调用任何插件,而这些插件不会提供这些插件。

答案 2 :(得分:1)

这就是NS Basic/App Studio背后的想法。它为您提供了一个带有拖放设计屏幕的漂亮IDE,用于jQuery Mobile对象和公共库的模板。它生成一个可以在浏览器中测试的Web应用程序,然后使用PhoneGap选项创建一个Make App。

您可以使用JavaScript或Basic的方言进行编程,就像VB一样。

(披露 - 我为NS Basic工作。制作这个产品真的很有趣!)

答案 3 :(得分:0)

您可以使用此应用程序来简化开发!

https://play.google.com/store/apps/details?id=org.Bellinux.CordovaFast

答案 4 :(得分:0)

我所做的只是将我的所有javascript文件上传到网络服务器并使用它们。

像这样,我的三星使用服务器上的JS文件,上传这些文件比使用phoneGap重建和重新启动应用程序要快得多,只要你在javascripts中进行小的更改。

当然,这并不能解决所有问题(尝试不同的手机),但对我而言,效果很好。

准备好后不要忘记使用本地副本,否则你的应用程序总是需要互联网连接;)