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

5.2 device类的异常情况

上一节介绍了一个利用Cordova获取设备信息的例子,但是细心的读者一定会发现,在设备名称处显示的内容是undefined,这又是为什么呢?要解决这个疑问就必须深入了解device类中每个属性的值。

name属性用来描述设备的名称,这个值由制造商决定,也就是说,即使是同一款手机,由于生产批次不同,最终的设备名称也可能不同。但是还会有一些例外的情况,比如在Android设备中常常获取到的是设备的产品名称,大名鼎鼎的Nexus系列获取的名称就是Passion,而在苹果的设备中该属性获取的值是iTunes中设定的用户名。上一节的范例由于采用的是虚拟机,所以无法获取设备名称,因而显示成了undefined。

Cordova属性的值比较固定,一般都是当前所使用的Cordova的版本号,范例之所以读取出错也是由于虚拟机的缘故。

提示

其实该属性并没有什么使用价值,因此无论正确还是错误,影响都不大。

platform属性用来保存设备所使用的操作系统的名称,在范例中非常正确地识别出了设备的操作系统为iOS。当然如果设备采用的安卓的设备就会显示Android。另外黑莓手机中显示的该属性是所使用的rom版本号,这对没有使用过黑莓的开发者来说也许会比较陌生,但是请放心,黑莓的用户都能够理解这组编号。

uuid的值对于用户来说是非常重要的,因为这个值对于每台设备来说就像是身份证一样,它是唯一的,在开发一些手机防盗应用时会经常使用。

提示

不只是移动设备,电脑的CPU、网卡、显卡等设备中也会用到该值,图5-2是在电脑的BIOS中查看电脑的uuid值。

图5-2 在BIOS中查看电脑的uuid

version属性用来显示设备的具体版本号,比如范例中的iOS系统为10.0.1版本,知道了该属性可以根据设备的版本号来对一些功能加以取舍,来保证APP运行的流畅性。