检测移动设备和平板电脑设备

2022-08-30 19:02:54

我目前正在研究一些用于手机PHP检测的代码,这可能很容易。

现在我只有一个问题 - 我想在我的MVC框架中为平板电脑,手机和网页制作独特的视图文件。因此,我需要将平板电脑与其他移动设备分开。

目前,这是我正在使用的代码:

public function isMobile()
{   
    if(preg_match('/(alcatel|amoi|android|avantgo|blackberry|benq|cell|cricket|docomo|elaine|htc|iemobile|iphone|ipad|ipaq|ipod|j2me|java|midp|mini|mmp|mobi|motorola|nec-|nokia|palm|panasonic|philips|phone|sagem|sharp|sie-|smartphone|sony|symbian|t-mobile|telus|up\.browser|up\.link|vodafone|wap|webos|wireless|xda|xoom|zte)/i', $_SERVER['HTTP_USER_AGENT']))
    return true;
else
    return false;
}

但这还不够 - 唯一的检查是设备是否是移动设备 - 如果不是标准告诉框架,我们在计算机上。最后一部分是可以的 - 但我想在实际的移动设备中对移动设备进行拆分 - 并且在secound组中,应该是平板电脑。

我希望,我已经明确表达了我的愿望,我希望你们能以一种好的方式提供一些投入来实现这一目标。

提前致谢。


答案 1

下面是一个类,其中包含用于单独检测每个平台的方法。


答案 2

老问题,但这是我对移动检测的看法。

您在问题中指出,您希望为移动设备提供唯一文件,因此我可以假设这样做的原因是为移动客户端和桌面客户端提供不同版本的网站。

这种方法在某一点之前是可以的。这一点被称为Android。每天激活的Android设备约为150万台,分辨率从320 * 240到2560 * 1600,这使得它们中的每一个都很难。即使您尝试列出最常用的设备,并且尝试仅针对这些设备,将来也很难支持新设备。if {} else

不久前,我的方法就是忘记将设备拆分为“移动”和“桌面”类别的旧方法,并创建一个新方法。该方法包括基于浏览器功能的“好”和“坏”浏览器。例如,如果浏览器支持本地存储,它将处于“良好”类别中。

从这里开始,我有可能创建网站的“基本”版本,从UI的角度来看,这是非常基本的,但它可以跨浏览器工作。该网站的基本版本将在所有设备上呈现相同的内容(因为这在一天结束时很重要),尺寸将非常小(更少的资产,更小的html),并且基于浏览器的功能将在客户端得到丰富。

因此,最终您将得到一个占用空间非常小(html大小和资产)的网站,跨浏览器看起来不错,它将支持市场上出现的任何新设备而无需任何更改,即使在连接不良的情况下也会快速加载,并且可以根据浏览器功能在客户端丰富。

您甚至可以根据设备大小丰富网页:如果浏览器报告大屏幕,则可以引入更多资产,更多广告并使网页更加美观;如果浏览器报告位于小屏幕上,则将其保留原样。


推荐