如何识别网站是否来自移动浏览器?

时间:2009-12-31 03:11:00

标签: c# mobile mobile-phones wml

开发手机网站是一个完全不同的世界吗?

如何检测是否从计算机或手机访问过某个页面?

我问这个因为我看到如下代码:

if (isset($_SERVER['HTTP_ACCEPT']) &&
(strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml')!==FALSE)
&& (strpos($_SERVER['HTTP_ACCEPT'],'text ml') === FALSE 
||
(strpos($_SERVER['HTTP_ACCEPT'],'vnd.wap.wml') <
strpos($_SERVER['HTTP_ACCEPT'],'text ml'))

)) { //cellphone

   readfile('index.wml');

} else readfile('index.htm');

如何将代码移植到C#中?

5 个答案:

答案 0 :(得分:3)

在php中,您通常会检查$_SERVER['HTTP_USER_AGENT']标题,以便识别Web请求所源自的Web浏览器。

为移动浏览器开发网站并不是一个完全不同的世界。但是,您必须牢记以下约束:

  • 屏幕尺寸:不仅您的屏幕空间较小,但不同移动设备之间的尺寸和方向也有很大差异。

  • Flash支持:大多数移动浏览器不支持Flash。

  • JavaScript支持:在移动浏览器上,JavaScript比Flash更受支持,特别是在现代手机和PDA中。

  • 渲染效果:复杂页面需要更长时间才能在移动浏览器中呈现。通常,如果您决定使用JavaScript,那么通过JavaScript操作DOM应该是最小的。

  • 移动带宽:请记住尽可能保持图像压缩,并缩小所有HTML,CSS和JavaScript。

答案 1 :(得分:2)

要检测手机并找出它的功能,您可以使用WURFL库。

答案 2 :(得分:0)

您可以解析用户代理字符串(很容易伪造),也可以使用媒体查询来检查最大视口大小这么小的内容。

答案 3 :(得分:0)

您将要在Getting Mobile: Using WML and WAP to Display Web Sites on Mobile Devices上查看此MSDN文章。通过设计WML,手机知道使用低分辨率版本。

此页面Detecting Mobile Devices using ASP.NET and C#显示了如何使用PHP移植的类来完成此操作。该链接中的API可以检测iPhone,机器人,黑莓,Symbion等。

  

WML卡片存储在普通卡片上   网络服务器平凡配置   提供text / vnd.wap.wml MIME类型   除了纯HTML和   变种。请求时使用WML卡   通过设备访问桥接器   WAP网关,位于移动设备之间   设备和万维网,   将页面从一个传递到另一个   很像代理。网关发送   WML页面以适合的形式出现   用于移动设备接收(WAP   二进制XML)。这个过程是隐藏的   从手机,所以它可以访问   页面与浏览器相同   使用URL访问HTML(for   例如,http://example.com/foo.wml)。   (提供给手机运营商   没有专门锁定手机   防止用户指定的访问   网址。)

Wikipedia Source

答案 4 :(得分:0)

user198729正在询问如何在C#中执行此操作 PHP中的$ _SERVER例如$ _SERVER ['HTTP_ACCEPT']由c#中的Request.Headers执行,例如

Request.Headers["HTTP_ACCEPT"]