Android PhoneGap-检测PhoneGap中的设备类型

Android PhoneGap-检测PhoneGap中的设备类型,android,cordova,phonegap-plugins,Android,Cordova,Phonegap Plugins,我正在phonegap中为三种不同的平台构建一个应用程序:Android、iOS和Blackberry。在执行此操作时,我必须检测设备类型,以便在不同平台上管理我的应用程序的高度和宽度,并针对不同的设备,如Android Phone、Android Tablet、iPhone、iPad和Blackberry…您可以使用device.name属性获取有关设备的详细信息 function onDeviceReady() { var name=device.name ;

我正在phonegap中为三种不同的平台构建一个应用程序:Android、iOS和Blackberry。在执行此操作时,我必须检测设备类型,以便在不同平台上管理我的应用程序的高度和宽度,并针对不同的设备,如Android Phone、Android Tablet、iPhone、iPad和Blackberry…

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

    function onDeviceReady() {
    var name=device.name ;
       }
或者,要仅获取平台,可以使用device.platform属性

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

您可以查看以下链接:

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

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

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

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;

}

请参见此处,了解如何将此代码用作您的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>

//等待PhoneGap加载
//
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
//PhoneGap已经准备好了
//
函数ondevicerady(){
var元素=document.getElementById('deviceProperties');
element.innerHTML='设备名称:'+Device.Name+'
'+ 'Device PhoneGap:'+Device.PhoneGap+'
'+ '设备平台:'+Device.Platform+'
'+ '设备UUID:'+Device.UUID+'
'+ '设备版本:'+Device.Version+'
'; }
正在加载设备属性

我建议你检查一下这个设备 祝你好运
Aamirkhan I.

如果您想在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);

Phonegap中最简单的新功能是您可以使用设备。平台:

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

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


使用谷歌搜索“CSS响应式设计”的信息我当然不会在页面布局时使用设备类型,布局应该只基于屏幕大小

您可以使用javascript属性:

width = window.innerWidth
height = window.innerHeight
或使用CSS:

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


请参见vmin、vmax、vh、vw

非常感谢。。。但这里我想谈谈设备类型。要么是安卓手机,要么是安卓平板电脑。在iPhone上也是如此。意味着它是iPhone或iPad。因为我的申请是针对三个平台的。1.安卓2。黑莓和3。iPhone/iPad.device.platform在Android emulator上返回“Android”。事实上,我没有在真实设备上检查,但我知道这会给你带来丰硕的成果。非常感谢。。。但这里我想谈谈设备类型。要么是安卓手机,要么是安卓平板电脑。在iPhone上也是如此。意味着它是iPhone或iPad。因为我的申请是针对三个平台的。1.安卓2。黑莓和3。iPhone/iPad。非常感谢,先生。。但问题是它无法检测到Android平板电脑/epad。你能帮我怎么做吗。它将epad类型显示为android。非常感谢。您只需登录Android tablet/epad的userAgent字符串。使用console.log(navigator.userAgent);并根据string.navigator.userAgent.match(/epad/i))=“epad”检查它返回的内容并放置条件?“epad”我已经在你提供给我的代码中加入了这个条件。。。但是它不起作用…试着提醒(navigator.userAgent)并告诉我你在android epad上得到了什么。你为什么要将
deviceType
设置为字符串
“null”
?如果你发现“device”未定义,那么你可能正在使用Phonegap/Cordova的更新版本,这意味着你需要安装插件。这可以在这里找到,并由
$phonegap local plugin add安装https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
cordova插件添加https://git-wip-us.apache.org/repos/asf/cordova-plugin-device.git
目前,只需
cordova插件添加cordova插件设备
我得到“没有设备的提供程序!“错误。有什么想法吗?你知道可能值的列表吗?我想根据de平台应用某个设置,但我不知道它是“ios”还是“ios”或“iPhone”还是“iSmugface”“@Roel这只是一个猜测,但由于cordova.platformVersion指的是cordova平台版本而不是设备版本,我认为cordova.platformId与平台下的文件夹名称一致。所以对于ios来说,应该是“ios”,这是一个比JDev的答案更可靠的解决方案。这是完美的。不需要插件。这应该是最好的答案。第一个很恶心,让我觉得不舒服,嗯?是的!,他想检测设备,然后有一个表格,上面有每个型号的硬编码尺寸!,那是错的!,他真正的问题不是如何检测模型,而是如何检测屏幕的大小,所以我的答案是正确的,任何同意使用设备模型来确定屏幕大小的人都不是。问题是如何检测设备类型。您没有回答问题。问题是如何检测设备类型以推断屏幕大小,这是错误的!,再读一遍!任何对这个答案投反对票的人都会鼓励某人编写扩展性不好且会崩溃的代码。“我必须检测设备类型,以便管理我的应用程序的高度和宽度”!不是很清楚吗?问题不是他只是想知道设备类型!是的,我做了,问题是检测设备以了解屏幕的大小!!,这完全是错误的。“必须检测设备类型,以便我可以在不同平台上管理我的应用程序的高度和宽度”我不应该被否决,再次阅读他的问题,他想做的是错误的。你真的想检测型号大小以确定scr的大小吗
.element{   
    height: 50vh;  //(height = 50 percent of screen)
}