基于第一个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 相关文章推荐
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
Feb 07 HTML / CSS
css3实现3D色子翻转特效
Dec 23 HTML / CSS
Html5 Canvas 实现一个“刮刮乐”游戏
Sep 05 HTML / CSS
html5新增的属性和废除的属性简要概述
Feb 20 HTML / CSS
程序设计HTML5 Canvas API
Apr 08 HTML / CSS
html5使用canvas画三角形
Dec 15 HTML / CSS
详解HTML5中div和section以及article的区别
Jul 14 HTML / CSS
基于HTML5 WebGL的3D机房的示例
Mar 16 HTML / CSS
canvas学习总结三之绘制路径-线段
Jan 31 HTML / CSS
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
Apr 07 HTML / CSS
html2 canvas svg不能识别的解决方案
Jun 03 HTML / CSS
postman中form-data、x-www-form-urlencoded、raw、binary的区别介绍
Jan 18 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 extract 将数组拆分成多个变量的函数
2010/06/30 PHP
PHP实现AES256加密算法实例
2014/09/22 PHP
PHP常用技术文之文件操作和目录操作总结
2014/09/27 PHP
PHP SPL标准库中的常用函数介绍
2015/05/11 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
Laravel框架使用monolog_mysql实现将系统日志信息保存到mysql数据库的方法
2018/08/16 PHP
关于laravel框架中的常用目录路径函数
2019/10/23 PHP
ASP中进行HTML数据及JS数据编码函数
2009/11/11 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
Javascript实现单张图片浏览
2014/12/18 Javascript
JavaScript中的getDay()方法使用详解
2015/06/09 Javascript
js实现表单Radio切换效果的方法
2015/08/17 Javascript
利用jquery制作滚动到指定位置触发动画
2016/03/26 Javascript
bootstrap的3级菜单样式,支持母版页保留打开状态实现方法
2016/11/10 Javascript
原生javascript实现图片放大镜效果
2017/01/18 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
JavaScript 程序错误Cannot use 'in' operator to search的解决方法
2017/07/10 Javascript
浅谈Webpack 持久化缓存实践
2018/03/22 Javascript
jQuery实现仿京东防抖动菜单效果示例
2018/07/06 jQuery
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
小程序实现录音功能
2020/09/22 Javascript
微信小程序将页面按钮悬浮固定在底部的实现代码
2020/10/29 Javascript
Python NumPy库安装使用笔记
2015/05/18 Python
python批量制作雷达图的实现方法
2016/07/26 Python
使用Python获取网段IP个数以及地址清单的方法
2018/11/01 Python
python shutil文件操作工具使用实例分析
2019/12/25 Python
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
企划经理的岗位职责
2013/11/17 职场文书
合同意向书范本
2014/07/30 职场文书
2014年党员加强作风建设思想汇报
2014/09/15 职场文书
2014年话务员工作总结
2014/11/19 职场文书
小石潭记导游词
2015/02/03 职场文书
女性健康知识讲座主持词
2015/07/04 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技
CSS实现背景图片全屏铺满自适应的3种方式
2022/07/07 HTML / CSS