PhoneGap是一能够让你用普通的web技术编写出能够轻松调用API接口和进入应用商店的HTML5应用开发平台。是唯一的一个支持7个平台的开源移动框架。它的优势是无以伦比的:开发成本低——据估算,至多Native App的五分之一!
- 兼容性:完全做到了Written Once,Run Everywhere!
- 标准化,PhoneGap采用W3C标准,Web App直接运行!
- 用JavaScript+HTM5。和iOS以及android的代码加XML没区别!
- 大众化移动互联网开发平台 了解更多
- 轻量级架构,功能卓越的手机应用快速开发平台
- 精确兼容系统 Andriod iPhone&iPad Symbain WM
- 无成本开发,20%的开发周期,20%的升级维护成本
- 完全不需要手机编程基础,只要会HTML就能做应用
一、PhoneGap环境配置
1、打开Eclipse,新建一个Android项目。
2、如果没有/libs目录,则创建,另外,创建一个/assets/www目录。
3、从刚才下载的PhoneGap中复制phonegap.js 到/assets/www目录;
从刚才下载的PhoneGap中复制phonegap.jar 到/libs目录;
从刚才下载的PhoneGap中复制xml文到夹到/res 目录。
4、对Eclipse的src文件夹中的主Java文件进行少量调整:
将class的继承类由Activity 改为DroidGap;
将 setContentView() 这一行替换为super.loadUrl(file:///android_asset/www/index.html);
添加 import com.phonegap.*;
移除import android.app.Activity;

注:
在这里你可能会遇到Eclipse找不到phonegap-1.0.0.jar的错误。在这种情况下,右键单击/libs文件夹找到Build Paths/ > Configure Build Paths。然后在Libraries标签页中添加phonegap-1.0.0.jar到项目中。如果Eclipse不是很稳定,你需要点击F5刷新一次项目。
5、给Manifest文件添加说明和权限:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
manifest
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:windowSoftInputMode
=
"adjustPan"
package
=
"org.apache.cordova.example"
android:versionName
=
"1.0"
android:versionCode
=
"1"
android:hardwareAccelerated
=
"true"
>
<
supports-screens
android:largeScreens
=
"true"
android:normalScreens
=
"true"
android:smallScreens
=
"true"
android:xlargeScreens
=
"true"
android:resizeable
=
"true"
android:anyDensity
=
"true"
/>
<
uses-permission
android:name
=
"android.permission.CAMERA"
/>
<
uses-permission
android:name
=
"android.permission.VIBRATE"
/>
<
uses-permission
android:name
=
"android.permission.ACCESS_COARSE_LOCATION"
/>
<
uses-permission
android:name
=
"android.permission.ACCESS_FINE_LOCATION"
/>
<
uses-permission
android:name
=
"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"
/>
<
uses-permission
android:name
=
"android.permission.INTERNET"
/>
<
uses-permission
android:name
=
"android.permission.RECEIVE_SMS"
/>
<
uses-permission
android:name
=
"android.permission.RECORD_AUDIO"
/>
<
uses-permission
android:name
=
"android.permission.RECORD_VIDEO"
/>
<
uses-permission
android:name
=
"android.permission.MODIFY_AUDIO_SETTINGS"
/>
<
uses-permission
android:name
=
"android.permission.READ_CONTACTS"
/>
<
uses-permission
android:name
=
"android.permission.WRITE_CONTACTS"
/>
<
uses-permission
android:name
=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<
uses-permission
android:name
=
"android.permission.ACCESS_NETWORK_STATE"
/>
<
uses-permission
android:name
=
"android.permission.GET_ACCOUNTS"
/>
<
uses-permission
android:name
=
"android.permission.BROADCAST_STICKY"
/>
<
application
android:icon
=
"@drawable/icon"
android:label
=
"@string/app_name"
android:hardwareAccelerated
=
"true"
android:debuggable
=
"true"
>
<
activity
android:name
=
"example"
android:label
=
"@string/app_name"
android:theme
=
"@android:style/Theme.Black.NoTitleBar"
android:configChanges
=
"orientation|keyboardHidden|keyboard|screenSize|locale"
>
<
intent-filter
>
<
action
android:name
=
"android.intent.action.MAIN"
/>
<
category
android:name
=
"android.intent.category.LAUNCHER"
/>
</
intent-filter
>
</
activity
>
</
application
>
<
uses-sdk
android:minSdkVersion
=
"7"
android:targetSdkVersion
=
"17"
/>
</
manifest
>
|
二、编写Hello World代码
1、在 “/assets/www”目录中新建文件index.html。
2、index.html的代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
<!
DOCTYPE
html>
<
html
>
<
head
>
<
meta
charset
=
"utf-8"
/>
<
meta
name
=
"format-detection"
content
=
"telephone=no"
/>
<
meta
name
=
"viewport"
content
=
"user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi"
/>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"css/index.css"
/>
<
title
>Hello World</
title
>
</
head
>
<
body
>
<
div
class
=
"app"
>
<
h1
>Apache Cordova</
h1
>
<
div
id
=
"deviceready"
class
=
"blink"
>
<
p
class
=
"event listening"
>Connecting to Device</
p
>
<
p
class
=
"event received"
>Device is Ready</
p
>
</
div
>
</
div
>
<
script
type
=
"text/javascript"
src
=
"cordova.js"
></
script
>
<
script
type
=
"text/javascript"
src
=
"js/index.js"
></
script
>
<
script
type
=
"text/javascript"
>
app.initialize();
</
script
>
</
body
>
</
html
>
|
三、项目完整图
