web多终端开发学习系列(二)--- 硬件交互框架Phonegap学习

目前对于移动端、桌面端的原生开发各平台都有各自的开发语言、开发工具等。如果要开发出一个适配多个终端的系统,我们需要用各自的平台工具分别开发出各自的应用,这对于一个团队或者一个开发人员来说要求非常高,并且非常耗时。前一篇学习了Bootstrap框架,对于多终端的界面适配有了解决方案。但一个系统除了与用户之间的交互外,其内部还可能需要与硬件进行交互来实现某些特殊需求,比如摄像头的调用,相册的获取等等。对于这些硬件的调用我们可以选择Phonegap。

介绍

Phonegap是一个适配多个终端进行硬件交互的框架,我所使用的版本是phonegap-2.9.0,支持的平台有Android,Blackberry,IOS,Tizen,WinPhone7 and 8,win8.。当然某个特殊功能所支持的平台可能会有出入,具体的可参考官方文档。phonegap的官网是http://phonegap.com/

对于不同平台的支持,都需要搭建不同的初始环境,比如android需要导入相关的jar包,配置初始的XML,一旦这些环境配置好了,多个平台可通过访问同一个Html或者动态网页来实现与各平台的硬件交互。

环境搭建

官网下载phonegap-2.9.0,我是通过手动下载ZIP的方式下载的,解压。本篇所用例子的平台为android,其它平台的搭建类似。

将官网提供的例子..\phonegap-2.9.0\lib\android\example导入到eclipse即可。可看到其项目结构如下:

其中assets存放了实际调用硬件的JS代码,config.xml是配置文件。可通过config.xml来配置引入硬件调用的类库,程序的初始访问路径。

实例

..\phonegap-2.9.0\doc存放了phonegap的各种API的实例,具体可参考此文档。

比如你需要通过js调用android的摄像头,步骤需要如下:

1.AndroidManifest.xml 配置访问权限

    <uses-permission android:name="android.permission.CAMERA" />

2.config.xml引入类库

    <feature name="Camera">
      <param name="android-package" value="org.apache.cordova.CameraLauncher"/>
    </feature>

3.实际的js调用

总结

如果需要应用phonegap来开发系统,前提必须是各目标平台需要配置好基础环境。一旦基础环境有了之后就可进行统一的代码开发。

由于是跨平台的框架,并且通过了跨语言的调用,phonegap开发的应用程序的性能比起原生应用还是存在差距的,但对于普通的应用,正常的硬件基本可以忽略此差距。

时间: 2024-10-22 20:41:53

web多终端开发学习系列(二)--- 硬件交互框架Phonegap学习的相关文章

ASP.NET MVC学习系列(二)-WebAPI请求

继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax({type:"get"}) 来实现: 请求的后台Action方法仍为上篇文章中的GetU

iOS开发UINavigation系列二——UINavigationItem

iOS开发UINavigation系列二--UINavigationItem 一.引言 UINavigationItem是导航栏上用于管理导航项的类,在上一篇博客中,我们知道导航栏是通过push与pop的堆栈操作来对item进行管理的,同样,每一个Item自身也有许多属性可供我们进行自定制.这篇博客,主要讨论UINavigationItem的使用方法. UINavigationBar:http://my.oschina.net/u/2340880/blog/527706. 二.来说说UINavi

Web程序员开发App系列 - 开发我的第一个App,源码下载

Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 Web程序员开发App系列 - 开发我的第一个App 待续 目录 前言 源码和App下载 准备工作 查看留言页面 增加留言页面 前言 看了前面几篇文章后我们终于要开始敲代码了,由于所有前端代码都是Html静态问题,所以你用什么开发工具都可以,后台我采用MVC开发,因为Html静态文件需要打包,里面

潜移默化学会WPF--Command(命令)学习(二) - AYUI框架 - 博客园

原文:潜移默化学会WPF--Command(命令)学习(二) - AYUI框架 - 博客园 2. 基本功 2.1 先看一段代码 前台页面上的 1 <Window x:Class="Commands.SimpleDocument" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winf

ASP.NET MVC学习系列(二)-WebAPI请求(转)

转自:http://www.cnblogs.com/babycool/p/3922738.html 继续接着上文 ASP.NET MVC学习系列(一)-WebAPI初探 来看看对于一般前台页面发起的get和post请求,我们在Web API中要如何来处理. 这里我使用Jquery 来发起异步请求实现数据调用. 继续使用上一文章中的示例,添加一个index.html页面,添加对jquery的引用. 一.无参数Get请求 一般的get请求我们可以使用jquery提供的$.get() 或者$.ajax

Java学习系列(二十四)Java正则表达式详解

转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/45501777 前言 正则表达式可以说是用来处理字符串的一把利器,它是一个专门匹配n个字符串的字符串模板,本质是查找和替换.在实例演示之前先了解一下Pattern.Matcher这两个工具类,Pattern:编译好的带匹配的模板(如:Pattern.compile("[a-z]{2}");/ / 取2个小写字母):Matcher:匹配目标字符串后产生的结果(如:pattern.m

Java I/O系统学习系列二:输入和输出

编程语言的I/O类库中常使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象.“流”屏蔽了实际的I/O设备中处理数据的细节. 在这个系列的第一篇文章:<<Java I/O系统学习系列一:File和RandomAccessFile>>中,我们讲到RandomAccessFile可以写入和读取文件,具备I/O功能,但是其只能针对文件,而I/O还涉及到很多其他场景比如网络.读取内存中的字符串等,所以Java类库中提供了一系列的类库来对其进行支持,也就是

NMock学习系列(二)--- NMock在MVP架构系统的单元测试中的应用

介绍 上篇已经学习了NMock的一些基础概念和代码,同时也想到了可能的两个应用场景,本篇开始学习下第一个应用场景---NMock在MVP架构模式下的应用场景.MVP的架构模式概念比较简单,主要是以接口的形式隔离视图与控制器之间的耦合,具体对于MVP模式的介绍请自行搜索学习.本篇接下来的学习前提是读者了解MVP的架构模式,主要明白视图接口的解耦. 应用场景 基于MVP模式的项目往往业务逻辑的编写和视图的建立是分开进行的,视图只需定义出接口供业务控制器进行依赖调用.所以如果在视图还未具体实现的情况下

web多终端开发学习系列(一)--- 响应式布局框架BootStrap学习

最近在温习web的开发,毕业之后就没接触web开发了.当时HTML5在国内貌似还是刚刚起步,能适配HTML5的浏览器很少.移动界面框架也才刚刚开始,记得当时曾经学过sencha touch的移动框架以及jquery mobile框架.这两个框架都对响应式布局进行了不错的适配及实现.响应式布局说白了就是对于多个移动终端只需一个界面即可全部适配,可大大地减少开发的工作量. 最近一年Bootstrap开始广泛地被使用了,基于此框架开发出来的插件数不胜数.所以我花了几天时间学习了下Bootstrap,本