PhoneGap 跨平台应用:HealthWorking (1)

HealthWorking 是一款基于HTML5标准的跨平台应用,跨平台的优势在于可以开发一次,部署在多个不同的平台上,如iOS, Android, WP等。HealthWorking的主要功能是一款健身应用,可以记录运动轨迹,并分享至社交网络。

首先,准备开发环境。【磨刀不误砍柴工】

1. 安装NodeJs

下载地址: https://nodejs.org/,安装完毕后,打开CMD,验证:npm命令

2. 安装PhoneGap

地址:http://phonegap.com/install/

验证:phonegap 命令

3. 安装Android sdk, Google的资源大家懂得:) 更新到最新即可

在环境变量Path中,增加:

ANDROID_HOME = C:\SDK\Android\android-sdk

在Path中,增加如下变量:

%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;

环境变量准备完毕后,可以开始动工了,是不是有点小激动呢~~~

用PhoneGap创建一个项目:

1. 打开cmd,cd到E:\Project\cordova下

cordova create healthworking com.example.healthyworking HealthWorking

cordova create 是创建项目的命令

healthworking是项目的目录名称

com.example.healthyworking 是项目的标识

HealthWorking 是应用的名称

打开文件,已经可以看到多了一个项目 healthworking

2. 为项目添加一个运行的平台,本例是以Android为例,因此,我们运行如下命令:

cd healthworking

cordova platform add android

运行完毕后如下所示:

3. 制作第一个页面,首先看下页面的样子:

本例中,我们采用jquery Mobile来做页面,本例项目的资源会在稍后的链接中给出。对于Mobile的编程,我们应该在哪些位置进行呢?

打开healthworking所在的文件夹,有如下的文件结构:

大多数情况下,我们只需要在www文件夹下完成编程即可,www文件夹的结构如下所示:(看着是不是跟前端编程很像呢 :)

至于这几个文件夹的功能,就不用多说了。当然可以根据自己的需求,添加新的文件夹/文件

index.html 内容如下:

<!DOCTYPE html>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
     KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.
-->
<html>
<head>
    <!--
        Customize this policy to fit your own app's needs. For more guidance, see:
            https://github.com/apache/cordova-plugin-whitelist/blob/master/README.md#content-security-policy
        Some notes:
            * gap: is required only on iOS (when using UIWebView) and is needed for JS->
    native communication
            * https://ssl.gstatic.com is required only on Android and is needed for TalkBack to function properly
            * Disables use of inline scripts in order to mitigate risk of XSS vulnerabilities. To change this:
                * Enable inline JS: add 'unsafe-inline' to default-src
        -->
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <!-- jquery -->
    <script src="js/jquery-2.1.3.min.js" type="text/javascript"></script>
    <script src="js/jquery.mobile-1.4.5.min.js" type="text/javascript"></script>
    <link href="css/jquery.mobile-1.4.5.min.css" rel="stylesheet" type="text/css"/>
    <link href="css/index.css" rel="stylesheet" type="text/css"/>
    <script type="text/javascript" src="cordova.js"></script>
    <title>Login</title>
</head>
<body>
    <div data-role="page" data-shadow="false">
        <div data-role="header" data-theme="b">
            <h1>登陆</h1>
        </div>
        <div role="main" class="ui-content">

            <div>

                <form>
                    <label for="text-1">用户名</label>
                    <input type="text" name="text-1" id="text-1" value="">
                    <label for="password-1">密码</label>
                    <input type="password" data-clear-btn="false" name="password-1" id="password-1" value="" autocomplete="off"></form>
            </div>

            <div>
                <fieldset data-role="controlgroup">
                    <input type="checkbox" name="checkbox-1a" id="checkbox-1a" checked="">
                    <label for="checkbox-1a">记住用户名</label>
                    <input type="checkbox" name="checkbox-2a" id="checkbox-2a">
                    <label for="checkbox-2a">记住密码</label>
                </fieldset>
            </div>

            <div>
                <button class="ui-btn ui-btn-a">登陆</button>
                <button class="ui-btn ui-btn-b">注册</button>
            </div>

            <div>
                <table class="tb-icon">
                    <tr>
                        <td id="login">
                            <a href="#" class="ui-btn ui-shadow ui-corner-all ui-icon-weibo ui-btn-icon-notext ui-btn-inline"></a>
                        </td>
                        <td>
                            <a href="#" class="ui-btn ui-shadow ui-corner-all ui-icon-weixin ui-btn-icon-notext ui-btn-inline"></a>
                        </td>
                    </tr>
                </table>
            </div>

        </div>

        <!--
        <div data-role="footer" data-position="fixed">
        <div data-role="navbar" data-iconpos="bottom">
            <ul>
                <li>
                    <a href="#" data-icon="grid">地图</a>
                </li>
                <li>
                    <a href="#" data-icon="star" class="ui-btn-active">Favs</a>
                </li>
                <li>
                    <a href="#" data-icon="gear">设置</a>
                </li>
            </ul>
        </div>
    </div>
    -->
</div>
</body>

</html>

好了,检验成果的时候来了,看看自己的第一个PhoneGap应用。

1. 编译,第一次编译的时间会比较长,需要加载相应的组件

编译成功后

2. 运行

cordova run android

注意:这个过程会启动Android模拟器,并部署应用在上面。这是需要在Path中配置Android SDK的原因

OK,大功告成!是不是很激动,如果你配置了WP的环境,同样可以将应用部署在WP的模拟器上,当然想部署iOS应用,前提是你有一台Mac电脑,加上开发者证书。

你可以在这里下载源码:https://github.com/byronzoz/healthworking.git

下一次将介绍:PhoneGap通过REST webservice 与外部服务器交互实现登陆。

时间: 2024-08-04 01:57:38

PhoneGap 跨平台应用:HealthWorking (1)的相关文章

01.html5+phonegap跨平台移动应用开发

一.html5+PhoneGap基础知识 (1)html5介绍 HTML5是用于取代1999年所制定的 HTML 4.01 和 XHTML 1.0 标准的 HTML 标准版本,现在仍处于发展阶段,但大部分浏览器已经支持某些 HTML5 技术.HTML 5有两大特点:首先,强化了 Web 网页的表现性能.其次,追加了本地数据库等 Web 应用的功能.广义论及HTML5时,实际指的是包括HTML.CSS和JavaScript在内的一套技术组合.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(p

《构建跨平台APP:PhoneGap移动应用实战》内容简介、目录

当当网链接 http://product.dangdang.com/23567381.html 内容简介 PhoneGap是一款优秀的移动跨平台开发框架,开发者通过它能够快速地将Web应用打包成在各个平台上运行的本地APP. 李柯泉.欧阳薇编著的<构建跨平台APP PhoneGap移动应用实战>分4篇共19章,第一篇是入门篇,包括了PhoneGap的小伙伴们.在安卓开发环境下的配置.对HTML 5前景的简单介绍.第二篇是基础知识篇,包含了设备信息.通讯录.加速度传感器.设备传感器.音频.文件.

歡迎下載 高煥堂的22個視頻課程(免費)

高煥堂的22個視頻課程(免費) 目录:(视频格式:mp4) 课程(1):抽象的迷思_父类(Superclass)不是抽象出来的 课程(2):抽象的迷思_API不是从业务抽象出来的(1)_设计思维 课程(3):抽象的迷思_API不是从业务抽象出来的(2)_举例说明 请下载==>视频课程(Part_01):抽象的迷思 课程(4):从编程到设计_开发者的心灵鸡汤 课程(5):从编程到设计_A段架构师的职责 课程(6):从编程到设计_接口(Interface)与未来性设计 课程(7):从编程到设计_高老

手机App调试(Android)

方法一:  用Chrome+手机来调试.1) 在PC上安装谷歌的USB驱动:         http://developer.android.com/sdk/win-usb.html#top 2) 在手机上打开Developer开关 3) 在手机上运行app (用IONIC或PhoneGap跨平台方案开发的. 需要是开发版, 不能是release版)( 确认手机和PC用USB线连接, 首次链接的时候, 在手机上会弹出信息, 要求trust此PC) 4) 在PC上, 打开Chrome浏览器, 在

开发技术文档汇总

开发技术文档汇总:(持续更新) 1 Underscore 中文文档    github地址   英文文档 2 Express中文文档   github地址 3 Backbone中文文档 Backbone英文文档   github地址 4 Jquery中文文档(适合1.0--2,0) 5 Bootstrap中文 6 Less中文 7 NodeJs中文API 8 node.js相关的中文文档及教程 9 ECMAScript262中文兼容库 10 浏览器hacks 11 Rapheal中文   相关文

移动应用跨平台开发:《用PhoneGap来开发跨平台手机应用》

移动应用跨平台开发:<用PhoneGap来开发跨平台手机应用> 随着HTML5, CSS3, Javascript的发展,以及浏览器对这些特性的支持,使得手机跨平台成为一种趋势,跨平台意味着:开发一次,到处运行.基于(HTML5, CSS3, Javascript)的前端开发技术,可以通过PhoneGap(http://phonegap.com/)来生成对应设备的应用,如Android的APK, iOS设备的ipa等.相比原生态的应用来讲,PhoneGap开发出来的应用成本更低,甚至不需要会J

跨平台移动开发工具:PhoneGap与Titanium全方位比拼

PhoneGap和Appcelerator Titanium,对于封装和配置移动应用程序而言,二者都是非常受欢迎的开源JavaScript框架.本文为Appcelerator开发者Kevin Whinnery对PhoneGap和Appcelerator Titanium进行的全方位的比较. 以下为全部译文: 我在面向开发者的各项活动和大会上经常被问及一个问题:Titanium与PhoneGap相比到底怎样.我想,看来有必要抽点时间,从宏观层面解释每一项技术是如何工作的,并且评估这两项技术彼此相比

小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载一(PhoneGap中的API)

之前本博连载过<构建跨平台APP:jQuery Mobile移动应用实战>一书.深受移动开发入门人员的喜爱. 从如今開始,连载它的孪生姐妹书phoneGap移动应用实战一书,希望以前是小白的你们,已经变成了大白. 3.6  PhoneGap中的API能干什么 本章主要介绍进行PhoneGap开发前所须要做好的准备,那么如今是不是该介绍一些关于PhoneGap的事了呢?事实上PhoneGap就是将HTML写成的页面显示出来.然后通过特定的JavaScript获取几组数据而已. 尽管说使用Phon

小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载三(通过实例来体验生命周期)

4.1.2  通过实例来亲身体验Activity的生命周期 上一小节介绍了Activity生命周期中的各个过程,本小节将以一个简单的实例来使读者亲身体验到Activity生命周期中的各个事件. 在Eclipse中新建一个Android工程,命名为example4_1,修改其MainActivity类中的内容如范例4-1所示. [范例4-1Activity生命周期的演示] 01 //此处省略若干个导入文件,由Eclipse自动生成 02 public classMainActivity exten