本文介紹了瀏覽器/手機檢測有哪些可用的解決方案的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我正在為各種移動平臺創建一個 phonegap 應用程序,我想知道當前瀏覽器/手機檢測的最佳解決方案是什么?
我應該使用服務器或客戶端檢測,還是可以通過媒體類型屏幕寬度使用 css 解決方案?
解決方案
變更:
- 06.03.2013 - 在 WURFL 章節中添加一些評論
介紹:
可用的解決方案很少,但我只會列出開源的解決方案,至少主要用于 jQuery/jQuery Mobile 的解決方案.還請注意,這個話題有可能引發戰爭.一方面,我們支持使用他們社區維護的數據庫進行服務器端檢測,另一方面,我們擁有使用瀏覽器嗅探的客戶端支持者.
服務器端:
WURFL -
<塊引用>創建于 2002 年的 WURFL(無線通用資源文件)是一個解決設備碎片化的流行開源框架移動 Web 開發人員和移動中的其他利益相關者的問題生態系統.WURFL 一直是并且仍然是事實上的標準移動開發人員采用的設備描述存儲庫.WURFL 是開源 (AGPL v3) 和 ScientiaMobile 的商標.
好:
非常詳細的檢測,你可能會得到更多的數據,然后才是真正需要的.
良好的平臺支持,API 可用于 Java、PHP 和 .Net.
糟糕:
不總是最新的,嚴重依賴社區
如果是 iPhone,則無法知道 iOS 版本,因此通過媒體類型查詢來檢測像素比率.
僅對非商業用途收費,舊版本仍可免費用于商業用途,但只能使用更新至 WURFL EULA 更改的數據庫.
- 可在此處找到:http://wurfl.sourceforge.net/apis.php
PHP 示例:
getWURFLInfo();if (isset($_GET['ua']) &&trim($_GET['ua'])) {$ua = $_GET['ua'];$requestingDevice = $wurflManager->getDeviceForUserAgent($_GET['ua']);} 別的 {$ua = $_SERVER['HTTP_USER_AGENT'];//此行通過查看其 HTTP 請求 ($_SERVER) 來檢測訪問設備$requestingDevice = $wurflManager->getDeviceForHttpRequest($_SERVER);}?><頭><title>WURFL PHP API 示例</title>頭部><身體><h3>WURFL XML 信息</h3><ul><li><h4>版本:<?php echo $wurflInfo->version;?></h4></li><div id="內容">用戶代理:<b><?php echo htmlspecialchars($ua);?></b><ul><li>ID: <?php echo $requestingDevice->id;?><li>品牌名稱:<?php echo $requestingDevice->getCapability('brand_name');?><li>模型名稱:<?php echo $requestingDevice->getCapability('model_name');?><li>營銷名稱:<?php echo $requestingDevice->getCapability('marketing_name');?><li>首選標記:<?php echo $requestingDevice->getCapability('preferred_markup');?><li>分辨率寬度:<?php echo $requestingDevice->getCapability('resolution_width');?><li>分辨率高度:<?php echo $requestingDevice->getCapability('resolution_height');?><p><b>通過提供用戶代理來查詢 WURFL:</b></p><form method="get" action="index.php"><div>用戶代理:<input type="text" name="ua" size="100" value="<?php echo isset($_GET['ua'])? htmlspecialchars($_GET['ua']): ''; ?>"/><input type="submit"/></div></表單>