除了能够将HTML页面打包成可以直接安装运行的APP外,PhoneGap的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的。范例5-1就展示了一个利用API来获取设备信息的例子。
【范例5-1 利用PhoneGap获取设备信息】
<!DOCTYPE html> <html> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <head> <script src="cordova.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript" charset="utf-8"> //设置触发器函数onDeviceReady() document.addEventListener("deviceready", onDeviceReady, false); // PhoneGap加载完毕,现在可以安全地调用PhoneGap方法 function onDeviceReady() { // 现在可以安全使用PhoneGap API //获取页面中id为deviceProperties的元素 var element = document.getElementById('deviceProperties'); //将获取的设备信息写入到页面元素中 element.innerHTML = '设备名称: ' + device.name + '<br />' + 'PhoneGap版本: ' + device.phonegap + '<br />' + '操作系统: ' + device.platform + '<br />' + '设备编号: ' + device.uuid + '<br />' + '操作系统版本: ' + device.version + '<br />'; } </script> </head> <body> <h4 id="deviceProperties"></h4> </body> </html>
使用PhoneGap编译之后,运行结果如图5-1所示。
通过本例可以看出,使用PhoneGap中API的方法与使用原生JavaScript和HTML的方法没有什么不同,只是多了一些事先定义好的类,如范例第15行中的device。
PhoneGap定义了一个类device,其中包含了name、phonegap、platform、uuid、version这5个成员变量,分别存放设备的设备名称、PhoneGap版本号、操作系统、设备编号和操作系统版本,使用时可以直接引用。
在范例的第15~19行就是使用了innerHTML操作来将device类中的信息显示到页面元素中,而页面元素是在第13行中利用元素的id属性来获取的。熟悉JavaScript的读者可以发现,这与JavaScript的DOM操作完全相同。
清华大学出版社推出的《构建跨平台APP:Phonegap移动应用实战》是一本APP实战书,包含20多个APP实例和3个APP项目,还结合了HTML5移动开发。本书面向移动开发入门人员,低门槛,浅阅读,最适合移动APP创业小白。本次发布第3~5章作为读者学习的基础,有兴趣的欢迎购买本书!欢迎加群:348632872,向作者直接提问交流!