Apache Cordova移动应用开发实战
上QQ阅读APP看书,第一时间看更新

5.1 Cordova获取设备信息

除了能够将HTML页面打包成可以直接安装运行的APP外,Cordova的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的。范例5-1就展示了一个利用API来获取设备信息的例子。

【范例5-1】利用Cordova获取设备信息。

先在命令行进入到项目文件夹下,执行以下命令添加插件:

cordova plugin add cordova-plugin-device

    01   <! DOCTYPE html>
    02   <html>
    03   <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    04   <head>
    05   <script src="cordova.js" type="text/javascript" charset="utf-8"></script>
    06   <script type="text/javascript" charset="utf-8">
    07       //设置触发器函数onDeviceReady()
    08        document.addEventListener("deviceready", onDeviceReady, false);
    09       // Cordova加载完毕,现在可以安全地调用Covdova方法
    10        function onDeviceReady() {
    11          // 现在可以安全使用Cordova API
    12          //获取页面中id为deviceProperties的元素
    13              var element = document.getElementById('deviceProperties');
    14            //将获取的设备信息写入到页面元素中
    15            element.innerHTML = ’设备名称: '     + device.name     + '<br />' +
    16                                    'Cordova版本: ' + device.cordova + '<br />' +
    17                                    ’操作系统: ' + device.platform + '<br />' +
    18                                    ’设备编号: '     + device.uuid     + '<br />' +
    19                                    ’操作系统版本: '  + device.version  + '<br />';
    20        }
    21
    22   </script>
    23   </head>
    24   <body bgcolor="#E4E4E4">
    25     <h1>cordova</h1>
    26        <h4 id="deviceProperties"></h4>
    27   </body>
    28   </html>

使用Cordova编译之后,运行结果如图5-1所示。

图5-1 利用Cordova显示设备信息

通过本例可以看出,使用Cordova中API的方法与使用原生JavaScript和HTML的方法没有什么不同,只是多了一些事先定义好的类,如范例第15行中的device。

Cordova定义了一个类device,其中包含了name、cordova、platform、uuid、version这5个成员变量,分别存放设备的设备名称、Cordova版本号、操作系统、设备编号和操作系统版本,使用时可以直接引用。

提示

不同的Cordova版本,此处测试会略有不同。

在范例的第15~19行就是使用了innerHTML操作来将device类中的信息显示到页面元素中,而页面元素是在第13行中利用元素的id属性来获取的。熟悉JavaScript的读者可以发现,这与JavaScript的DOM操作完全相同。