PhoneGap 設備

转载 2013年12月03日 11:52:48

設備

device物件描述該設備的硬體和軟體。

屬性

變數範圍

因為 device 分配到 window 的物件,它是隱式地在全球範圍內。

// These reference the same `device`
var phoneModel = window.device.model;
var phoneModel = device.model;

訪問功能

從 3.0 版,科爾多瓦作為外掛程式實現了設備級 Api。 使用 CLI 的 plugin 命令,描述在命令列介面,可以添加或刪除一個專案,為此功能:

    $ cordova plugin add org.apache.cordova.device
    $ cordova plugin ls
    [ 'org.apache.cordova.device' ]
    $ cordova plugin rm org.apache.cordova.device

這些命令適用于所有有針對性的平臺,但修改如下所述的特定于平臺的配置設置:

  • Android 系統

    (in app/res/xml/config.xml)
    <feature name="Device">
        <param name="android-package" value="org.apache.cordova.Device" />
    </feature>
    
    
    (in app/AndroidManifest.xml)
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    
  • 黑莓手機 WebWorks

    (in www/plugins.xml)
    <feature name="Device">
        <param name="blackberry-package" value="org.apache.cordova.device.Device" />
    </feature>
    
    
    (in www/config.xml)
    <feature id="blackberry.app" required="true" version="1.0.0.0" />
    <rim:permissions>
        <rim:permit>read_device_identifying_information</rim:permit>
    </rim:permissions>
    
  • (在 Windows PhoneProperties/WPAppManifest.xml)

    <Capabilities>
        <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
        <Capability Name="ID_CAP_IDENTITY_DEVICE" />
        <Capability Name="ID_CAP_IDENTITY_USER" />
    </Capabilities>
    

    引用:為 Windows Phone 應用程式清單

  • (在 Tizenconfig.xml)

    <feature name="http://tizen.org/api/systeminfo" required="true"/>
    

    引用: Tizen Web 應用程式的應用程式清單

一些平臺可能支援此功能,而無需任何特殊的配置。請參見在概述部分中的平臺支援

device.name

WARNING: device.name is deprecated as of version 2.3.0. Use device.model instead.

獲取設備的模型名稱。

var string = device.name;

說明

device.name返回設備的模型或產品的名稱。此值由設備製造商設置的並且可能不同,同一產品的不同版本。

支援的平臺

  • Android 系統
  • 黑莓手機 WebWorks (OS 5.0 和更高)
  • iOS
  • Tizen
  • Windows Phone 7 和 8
  • Windows 8

快速的示例

// Android:    Nexus One       returns "Passion" (Nexus One code name)
//             Motorola Droid  returns "voles"
// BlackBerry: Torch 9800      returns "9800"
// iOS:     All devices     returns either "iPhone", "iPod Touch", "iPhone Simulator", "iPad", "iPad Simulator"
//
var name = device.name;

完整的示例

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');
        element.innerHTML = 'Device Name: '     + device.name     + '<br />' +
                            'Device Model: '    + device.model    + '<br />' +
                            'Device Cordova: '  + device.cordova  + '<br />' +
                            'Device Platform: ' + device.platform + '<br />' +
                            'Device UUID: '     + device.uuid     + '<br />' +
                            'Device Version: '  + device.version  + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">Loading device properties...</p>
  </body>
</html>

Android 的怪癖

  • 獲取產品名稱而不是產品型號名稱,這往往是生產代碼名稱。 例如,Nexus One 返回 Passion ,和摩托羅拉 Droid 返回voles.

Windows Phone 7 和 8 怪癖

  • 返回由製造商指定的設備模型。例如,三星焦點返回SGH-i917.

Tizen 怪癖

  • 例如,返回與供應商指派的設備模型TIZEN

device.cordova

獲取科爾多瓦在設備上運行的版本。

var string = device.cordova;

說明

device.cordova返回科爾多瓦在設備上運行的版本。

支援的平臺

  • Android 系統
  • 黑莓手機 WebWorks (OS 5.0 和更高)
  • iOS
  • Tizen
  • Windows Phone 7 和 8
  • Windows 8

快速的示例

var name = device.cordova;

完整的示例

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');
        element.innerHTML = 'Device Model: '    + device.model    + '<br />' +
                            'Device Cordova: '  + device.cordova  + '<br />' +
                            'Device Platform: ' + device.platform + '<br />' +
                            'Device UUID: '     + device.uuid     + '<br />' +
                            'Device Version: '  + device.version  + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">Loading device properties...</p>
  </body>
</html>

device.platform

獲取該設備的作業系統名稱。

var string = device.platform;

支援的平臺

  • Android 系統
  • 黑莓手機 WebWorks (OS 5.0 和更高)
  • iOS
  • Tizen
  • Windows Phone 7 和 8
  • Windows 8

快速的示例

// Depending on the device, a few examples are:
//   - "Android"
//   - "BlackBerry"
//   - "iOS"
//   - "WinCE"
//   - "Tizen"
var devicePlatform = device.platform;

完整的示例

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');
        element.innerHTML = 'Device Model: '    + device.model    + '<br />' +
                            'Device Cordova: '  + device.cordova  + '<br />' +
                            'Device Platform: ' + device.platform + '<br />' +
                            'Device UUID: '     + device.uuid     + '<br />' +
                            'Device Version: '  + device.version  + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">Loading device properties...</p>
  </body>
</html>

黑莓手機的怪癖

設備可能會返回而不是平臺名稱的設備平臺版本編號。例如,Storm2 9550 返回一個值如2.13.0.95.

Windows Phone 7 的怪癖

Windows Phone 7 設備報告作為平臺WinCE.

Windows Phone 8 怪癖

Windows Phone 8 設備報告作為平臺Win32NT.

device.uuid

獲取設備的通用唯一識別碼 (UUID).

var string = device.uuid;

說明

UUID 如何生成的詳細資訊由設備製造商和特定于設備的平臺或模型。

支援的平臺

  • Android 系統
  • 黑莓手機 WebWorks (OS 5.0 和更高)
  • iOS
  • Tizen
  • Windows Phone 7 和 8
  • Windows 8

快速的示例

/ / Android 一個隨機的 64 位整數 (作為字串返回,再次!) / / 上設備的第一次啟動生成的整數 / / / / 黑莓手機: 返回設備 PIN 號碼 / / 這是九個數字的唯一整數 (作為字串,雖然!) / / / / iPhone (從 UIDevice 類文檔解釋) / / 返回一個字串的雜湊值創建的多個硬體標識。
/ / 它保證是唯一的每個設備並不能綁 / / 到使用者帳戶。
/ / Windows Phone 7 返回的雜湊代碼的設備 + 當前使用者,/ / 如果未定義使用者,則一個 guid 生成的並且將會保留直到卸載該應用程式 / / Tizen 返回設備 IMEI (國際行動裝置身份或 IMEI 是一個數位 / / 獨有的每一個 UMTS  GSM 行動電話。
var deviceID = device.uuid;

完整的示例

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');
        element.innerHTML = 'Device Model: '    + device.model    + '<br />' +
                            'Device Cordova: '  + device.cordova  + '<br />' +
                            'Device Platform: ' + device.platform + '<br />' +
                            'Device UUID: '     + device.uuid     + '<br />' +
                            'Device Version: '  + device.version  + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">Loading device properties...</p>
  </body>
</html>

iOS 怪癖

uuid在 iOS 上不是獨有的一種設備,但對於每個應用程式,為每個安裝各不相同。 如果您刪除並重新安裝應用程式,它會更改和可能還當你升級 iOS,或甚至升級您的應用程式每個版本 (明顯在 iOS 5.1 中)。 uuid不是一個可靠的值。

Windows Phone 7 和 8 怪癖

uuid為 Windows Phone 7 需要許可權 ID_CAP_IDENTITY_DEVICE 。 Microsoft 可能會很快就棄用此屬性。 如果能力不是可用的應用程式將生成一個持久性的 guid 並保持應用程式的安裝在設備上的持續時間。

device.version

獲取作業系統版本。

var string = device.version;

支援的平臺

  • Android 2.1 +
  • 黑莓手機 WebWorks (OS 5.0 和更高)
  • iOS
  • Tizen
  • Windows Phone 7 和 8
  • Windows 8

快速的示例

/ / Android Froyo OS 將返回"2.2"/ / Eclair OS 將返回"2.1""2.0.1"2.0"/ / 版本,也可以返回更新級別"2.1 update1"/ / / / 黑莓手機: 火炬 9800 使用 OS 6.0 將返回"6.0.0.600"/ / / / iPhone iOS 3.2 返回"3.2"/ / / / Windows Phone 7 返回當前 OS 版本數,。 on Mango returns 7.10.7720
// Tizen: returns "TIZEN_20120425_2"
var deviceVersion = device.version;

完整的示例

<!DOCTYPE html>
<html>
  <head>
    <title>Device Properties Example</title>

    <script type="text/javascript" charset="utf-8" src="cordova.js"></script>
    <script type="text/javascript" charset="utf-8">

    // Wait for device API libraries to load
    //
    document.addEventListener("deviceready", onDeviceReady, false);

    // device APIs are available
    //
    function onDeviceReady() {
        var element = document.getElementById('deviceProperties');
        element.innerHTML = 'Device Model: '    + device.model    + '<br />' +
                            'Device Cordova: '  + device.cordova  + '<br />' +
                            'Device Platform: ' + device.platform + '<br />' +
                            'Device UUID: '     + device.uuid     + '<br />' +
                            'Device Version: '  + device.version  + '<br />';
    }

    </script>
  </head>
  <body>
    <p id="deviceProperties">Loading device properties...</p>
  </body>
</html>

相关文章推荐

[Phonegap+Sencha Touch] 移动开发17 使用桌面chrome调试安卓设备上的chrome和cordova app(webview)

调试安卓设备上的chrome浏览器:

phonegap-网络访问与调用android手机硬件设备

一、phonegap开发简述 使用phonegap包开发的目的就是为了缩短开发周期,利用熟悉的HTML、javascript、CSS技术快速的打造自己的客户端APP。其中存在的关键问题是:这些HTML...

Phonegap Device 获取设备信息

phonegap获取手机设备信息  获取的手机的有 device.model     :返回设备的模型或产品的名称 device.cordova  :返回cordova的版本 device.uui...
  • aaawqqq
  • aaawqqq
  • 2014年03月13日 16:33
  • 19713

PhoneGap API帮助文档翻译—Device(设备)

“   device对象描述设备的硬件和软件。 属性: device.namedevice.phonegapdevice.platformdevice.uuiddevice...

phonegap-android硬件设备的调用

环境配置 插件安装 在创建phonegap工程后,进入到plugins文件夹下 根据自己所需要的功能添加响应插件 各项功能对应插件安装方法如下 //设备API ...

[Phonegap+Sencha Touch] 移动开发17 使用桌面版chrome调试安卓设备上的chrome和webview

调试安卓设备上的chrome浏览器: 要求: 1、一台安装有chrome浏览器 for android32+的安卓设备 2、安卓设备的usb数据线 3、安装有chrome ...

小白学phoneGap《构建跨平台APP:phoneGap移动应用实战》连载五(使用PhoneGap获取设备信息)

除了能够将HTML页面打包成可以直接安装运行的APP外,PhoneGap的一个最大优势在于可以通过JavaScript调用设备来访问设备上的硬件信息,从而实现一些原本只有依靠原生SDK才能够达到的目的...

phonegap-android-master

  • 2014年11月19日 15:17
  • 150KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PhoneGap 設備
举报原因:
原因补充:

(最多只允许输入30个字)