PhoneGap - 检测phonegap中的设备类型

时间:2012-06-18 06:27:42

标签: android cordova phonegap-plugins

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

9 个答案:

答案 0 :(得分:94)

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

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

答案 1 :(得分: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);

答案 2 :(得分:34)

cordova.platformId 
// "android"

答案 3 :(得分:5)

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

    function onDeviceReady() {
    var name=device.name ;
       }

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

    function onDeviceReady() {
    var name=device.name ;
    var plat=device.platform;
       }

答案 4 :(得分:3)

将此代码用作ur html文件

       设备属性示例

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

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

// PhoneGap is ready
//
function onDeviceReady() {
    var element = document.getElementById('deviceProperties');

    element.innerHTML = 'Device Name: '     + device.name     + '<br />' + 
                        'Device PhoneGap: ' + device.phonegap + '<br />' + 
                        'Device Platform: ' + device.platform + '<br />' + 
                        'Device UUID: '     + device.uuid     + '<br />' + 
                        'Device Version: '  + device.version  + '<br />';
}

</script>

       加载设备属性......

  

我建议你在设备中检查一下 最好的运气 Aamirkhan我。

答案 5 :(得分:1)

您可以查看以下链接: http://docs.phonegap.com/en/1.0.0/phonegap_device_device.md.html

有几种方法可以从phonegap获取设备信息。

另一个选择是查看浏览器类型。 (IE = WP7,Safari = iOS,...)

我不确定您是否能够检测到您是否使用Android手机或平板电脑...... 无论如何,你的HTML应用程序应该能够处理任何屏幕分辨率。 您也可以在手机上使用不同的分辨率!

答案 6 :(得分:0)

function onDeviceReady()
{
// ***IMPORTANT: access device object only AFTER "deviceready" event    
document.getElementById("name").innerHTML = device.name;
document.getElementById("pgversion").innerHTML = device.cordova ? device.cordov:device.phonegap;
document.getElementById("platform").innerHTML = device.platform;
document.getElementById("uuid").innerHTML = device.uuid;
document.getElementById("version").innerHTML = device.version;

}

请参阅此处查看device.platform

答案 7 :(得分:0)

如果您需要此信息,因为您正在尝试正确格式化屏幕 - 您应该使用CSS @media查询来确定适当的屏幕布局并相应地应用CSS。

使用Google查找“使用CSS进行响应式设计”的信息

答案 8 :(得分:-2)

我在布局页面时肯定不会使用设备类型,布局应仅基于屏幕尺寸

您可以使用javascript属性:

width = window.innerWidth
height = window.innerHeight

或使用CSS:

.element{   
    height: 50vh;  //(height = 50 percent of screen)
}

见vmin,vmax,vh,vw