如果您使用PhoneGap Build,是否需要PhoneGap 3.1命令行工具?

时间:2014-02-15 06:36:29

标签: cordova phonegap-plugins phonegap-build

我正在尝试开发PhoneGap应用程序,但我很困惑。我的开发环境是Windows,我使用VisualStudio使用HTML 5,CSS 3,jQuery,jQuery Mobile等创建我的应用程序。我有一个PhoneGap Build帐户,我可以上传我的应用程序的zip文件,它建立。我正在使用PhoneGap 3.1.0。我正在尝试检查我的网络连接。在我的config.xml文件中,我有以下内容:

<feature name="NetworkStatus">
    <param name="ios-package" value="CDVConnection" />
</feature>

这是我检查连接的代码:

        // Wait for device API libraries to load
        document.addEventListener("deviceready", onDeviceReady, false);

        // device APIs are available
        function onDeviceReady()
        {
            checkConnection();
        }

        function checkConnection()
        {
            try
            {
                var networkState = navigator.connection.type;

                var states = {};
                states[Connection.UNKNOWN] = 'Unknown connection';
                states[Connection.ETHERNET] = 'Ethernet connection';
                states[Connection.WIFI] = 'WiFi connection';
                states[Connection.CELL_2G] = 'Cell 2G connection';
                states[Connection.CELL_3G] = 'Cell 3G connection';
                states[Connection.CELL_4G] = 'Cell 4G connection';
                states[Connection.CELL] = 'Cell generic connection';
                states[Connection.NONE] = 'No network connection';

                alert('Connection type: ' + states[networkState]);                  
            }
            catch (e)
            {
                alert(e);
            } 
        }

navigator.connection.type错误输出并且始终未定义,无论我的iPad mini上的网络连接如何。

以下是我包含的JavaScript文件:

    <script src="cordova.js"></script>
    <script src="cdv-plugin-fb-connect.js"></script>    
    <script src="facebook-js-sdk.js"></script>

在谷歌搜索解决方案时,我看到了很多令人困惑和矛盾的信息。

  1. 我是否需要引用cordova.js和phonegap.js或我的Index.html文件中的一个或哪一个?
  2. 由于我在Windows中开发,我无法访问Mac。我是否需要使用命令行工具来建立项目结构?我可以手动完成吗?我可以使用PhoneGap Build构建我的应用程序,并可以将其安装在我的iPad Mini上。我只是无法测试网络连接。
  3. 我是否想要包含对其他JavaScript文件的引用以进行网络连接?如果是这样,它们存在于何处?我假设自从我在config.xml中放置了NetworkStatus功能后,PhoneGap Build会将必要的javascript文件注入到我的项目中。由于navigator.connection.type总是未定义,我假设我错过了一个包含网络状态代码的文件。这在哪里?
  4. 请帮我指点方向。我的理解是,我需要做的就是使用HTML 5,CSS和必要的JavaScript创建我的应用程序,而我需要的所有PhoneGap都是带有必要条目的config.xml文件,以便使用PhoneGap BUild为不同平台构建我的应用程序。对于我想支持的每个平台,我都不应该去Mac或Eclipse等。

1 个答案:

答案 0 :(得分:2)

您不需要CLI使用phonegap构建,您只需要您的html5应用程序和项目的config.xml配置文件。

Phonegap cli允许自动化远程构建,但根本不需要它。

  1. 您只需要在html文件中引用phonegap.js(使用require自动加载cordova.js)。

  2. 如果没有mac,您将能够构建您的应用程序,但您需要一个Apple开发者帐户才能将证书添加到您的应用程序并能够在您的设备中安装(使用配置文件)。但不幸的是,如果你想在苹果商店添加你的应用程序,你仍然需要一台Mac。

  3. 我认为你错过的是在config.xml中定义插件(在phonegap 3中,每个核心api都是你需要包含的插件,如果你使用它)。 您在插件中添加插件的方式不是添加<feature>标记,而是添加<gap:plugin>

  4. 我建议您查看phonegap build docs。并查看the plugin list at this page

    对于连接api,您需要添加行

    <gap:plugin name="org.apache.cordova.network-information" />
    

    4.最后,要使用facebook connect插件,您不必包含js文件,而是按照instructions on this页面添加插件。

    编辑回答评论

    the doc you lincked开始时,您将看到它被指示使用cordova plugin add org.apache.cordova.network-information来安装插件,这是使用CLI时继续进行的方式。

    对于phonegap构建,您必须在config.xml中添加行<gap:plugin name="org.apache.cordova.network-information" />才能获得相同的结果。检查the plugin doc on phonegap build for proper instructions

    关于<feature>行,文档中实际解释的是,当您使用CLI安装插件时,行<feature name="NetworkStatus">...会自动添加到文件platforms\android\res\xml\config.xml中(并且必须手动完成本地构建而不使用CLI的人员

    关键是这句话:

      

    这些命令适用于所有目标平台,但修改了   特定于平台的配置设置如下所述: