基于第一个PhoneGap(cordova)的应用详解


Posted in HTML / CSS onMay 03, 2013

PhoneGap是一套能让你使用HTML5轻松调用本地API接口和发布应用到商店的应用开发平台。官方说有低成本,低开发周期,轻量化等优点,这些咱暂时也没法证明,略过不表。但是有一条跨平台,却是很明显的优势。因为它采用HTML5+JavaScript的模式来开发应用。PhoneGap用JavaScript统一封装了几大平台的本地api(Andriod,IOS,WP8/7,WINRT)等等。。这样的话从一个平台移植到另外一个平台只需要把HTML代码跟JS原封不动的拿过去,打包一下就可以了。PhoneGap后来被Adobe收购,然后又贡献给了开源社区,现在由Apache管理,改名cordova。

为了给昨天的html5画图板移植到移动设备上,我决定采用phoneGap平台,这样只要编写一边就可以多出运行了。

今天先在Andriod下架设phoneGap环境。

1.下载phoneGap

http://phonegap.com/download/#autodownload

解压出来,找到lib/android目录。

2.在eclipse下新建Andriod项目,这个跟普通项目一样。

3.在assets目录下新建文件夹“www”

把lib/android目录下的cordova-2.6.0.js复制到这个目录下。把cordova-2.6.0.jar复制到libs目录下。

基于第一个PhoneGap(cordova)的应用详解

4.在www目录下新建一个html文件index.html。我们的界面就要在这里建立了。

基于第一个PhoneGap(cordova)的应用详解

index的代码如下:

复制代码
代码如下:

<!doctype html>
<html>
<head>
<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" />
<title>HTML5Paint</title>
<script type="text/javascript" src="cordova-2.6.0.js" charset="utf-8"></script>
<script type="text/javascript">
alert("HELLO CORDOVA");
</script></p> <p></head>
<body></p> <p><h1>HTML5Paint</h1>
</body>
</html>

5.把lib/android目录下的xml文件夹整个复制到res面目下

基于第一个PhoneGap(cordova)的应用详解

6.修改AndroidManifest.xml添加用户权限

在<manifest >标签的内的最前部添加如下代码

复制代码
代码如下:

<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true"
android:resizeable="true"
android:anyDensity="true"
/></p> <p> <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" />

7.修改MainAcivity.java

复制代码
代码如下:

public class MainActivity extends DroidGap {</p> <p> @Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.loadUrl("file:///android_asset/www/index.html");
}</p> <p>}

8.build一下会有错误,这是因为前面的cordova-2.6.0.jar没有添加到buildpath里面去。添加buildpath。

基于第一个PhoneGap(cordova)的应用详解

继续build就过了。

最后run一下:

 

基于第一个PhoneGap(cordova)的应用详解基于第一个PhoneGap(cordova)的应用详解

这样一个phonegap的Andriod程序就搞定了。明天把昨天的那个HTML5画板移植过来。

HTML / CSS 相关文章推荐
使用CSS3实现多列布局与多背景的技巧
Feb 29 HTML / CSS
css3 transform导致子元素固定定位变成绝对定位的方法
Mar 06 HTML / CSS
基于CSS3的animation属性实现微信拍一拍动画效果
Jun 22 HTML / CSS
HTML5中的nav标签学习笔记
Jun 24 HTML / CSS
HTML5离线缓存Manifest是什么
Mar 09 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
Sep 05 HTML / CSS
HTML5拖拽文件到浏览器并实现文件上传下载功能代码
Jun 06 HTML / CSS
html5实现canvas阴影效果示例
May 07 HTML / CSS
canvas需要在标签里直接定义宽高
Dec 17 HTML / CSS
基于HTML5的WebGL经典3D虚拟机房漫游动画
Nov 15 HTML / CSS
使用canvas压缩图片上传的方法示例
Feb 07 HTML / CSS
老生常谈 使用 CSS 实现三角形的技巧(多种方法)
Apr 13 HTML / CSS
HTML5 离线应用之打造零请求、无流量网站的解决方法
Apr 25 #HTML / CSS
HTML5 本地存储之如果没有数据库究竟会怎样
Apr 25 #HTML / CSS
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
Apr 25 #HTML / CSS
基于HTML5 FileSystem API的使用介绍
Apr 24 #HTML / CSS
HTML5 绘制图像(上)之:关于canvas元素引领下一代web页面的问题
Apr 24 #HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
Apr 24 #HTML / CSS
HTML5 Web Workers之网站也能多线程的实现
Apr 24 #HTML / CSS
You might like
php error_log 函数的使用
2009/04/13 PHP
php数组随机排序实现方法
2015/06/13 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
浅析javascript闭包 实例分析
2010/12/25 Javascript
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
JavaScript字符串对象slice方法入门实例(用于字符串截取)
2014/10/16 Javascript
javascript文本模板用法实例
2015/07/31 Javascript
JavaScript实现输入框与清空按钮联动效果
2016/09/09 Javascript
jQuery实现简易的输入框字数计数功能示例
2017/01/16 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
nodejs 最新版安装npm 的使用详解
2018/01/18 NodeJs
详解webpack2异步加载套路
2018/09/14 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
vue+elementUI 实现内容区域高度自适应的示例
2020/09/26 Javascript
JavaScript实现图片放大预览效果
2020/11/02 Javascript
[02:46]解说DC:感谢430陪伴我们的DOTA2国际邀请赛岁月
2016/06/29 DOTA
Python字符串逆序输出的实例讲解
2019/02/16 Python
pyhton中__pycache__文件夹的产生与作用详解
2019/11/24 Python
使用Pandas的Series方法绘制图像教程
2019/12/04 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
Python读取yaml文件的详细教程
2020/07/21 Python
Python使用urlretrieve实现直接远程下载图片的示例代码
2020/08/17 Python
Sunglass Hut巴西网上商店:男女太阳镜
2020/10/04 全球购物
人力资源专业推荐信
2013/11/29 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
车队安全员岗位职责
2015/02/15 职场文书
2015年小学数学教师工作总结
2015/05/20 职场文书
观看《信仰》心得体会
2016/01/15 职场文书
解决mysql的int型主键自增问题
2021/07/15 MySQL