PhoneGap - 检测phonegap中的设备类型

Pre*_*oid 50 android phonegap-plugins cordova

我正在为三个不同的平台构建一个phonegap应用程序:Android,iOS和Blackberry.在这样做时,我必须检测设备类型,以便我可以管理我的应用程序在不同平台和Android手机,Android平板电脑,iPhone,iPad和黑莓等不同设备的高度和宽度......

Sin*_*dre 94

Phonegap中的新功能,也是最简单的,您可以使用device.platform:

// Depending on the device, a few examples are:
//   - "Android"
//   - "BlackBerry"
//   - "iOS"
//   - "webOS"
//   - "WinCE"
//   - "Tizen"
//   - "browser"
var devicePlatform = device.platform;
Run Code Online (Sandbox Code Playgroud)

  • 如果您发现"设备"未定义,那么您可能正在使用较新版本的Phonegap/Cordova,这意味着您需要安装该插件.这可以在这里找到,https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git并通过`$ phonegap local plugin add https:// git-wip-us安装. apache.org/repos/asf/cordova-plugin-device.git`或`cordova plugin add https:// git-wip-us.apache.org/repos/asf/cordova-plugin-device.git` (25认同)
  • 目前,只需`cordova插件添加cordova-plugin-device` (7认同)

JDe*_*Dev 56

如果你想在onDeviceReady之前获得设备类型,你可以这样做.

var deviceType = (navigator.userAgent.match(/iPad/i))  == "iPad" ? "iPad" : (navigator.userAgent.match(/iPhone/i))  == "iPhone" ? "iPhone" : (navigator.userAgent.match(/Android/i)) == "Android" ? "Android" : (navigator.userAgent.match(/BlackBerry/i)) == "BlackBerry" ? "BlackBerry" : "null";

alert(deviceType);
Run Code Online (Sandbox Code Playgroud)


Rou*_*ouR 34

cordova.platformId 
// "android"
Run Code Online (Sandbox Code Playgroud)

  • @Roel这只是猜测,但由于cordova.platformVersion指的是cordova平台版本而不是设备版本,我认为cordova.platformId与平台下的文件夹名称一致.所以对于ios来说,它将是"ios" (2认同)

Ice*_*Box 5

您可以使用device.name属性获取有关设备的详细信息.

    function onDeviceReady() {
    var name=device.name ;
       }
Run Code Online (Sandbox Code Playgroud)

或者只获取平台,您可以使用device.platform属性.

    function onDeviceReady() {
    var name=device.name ;
    var plat=device.platform;
       }
Run Code Online (Sandbox Code Playgroud)