如何在网络应用程序中检测手机
下面是一个类似的问题的一些信息:
Auto detect mobile browser (via user-agent?)
它涉及读取用户代理头。其他问题的答案包括脚本的链接。
这里是另一个有益的讨论:
Standard way to detect mobile browsers in a web application based on the http request
斯科特Hanselman的did a podcast模块设备数据库,微软made available on Codeplex上。这是一个.browser文件,您可以将它放在ASP.NET(2.0+版)网站中,这样可以帮助框架更加紧密地定义Request.Browser
属性。您应该能够从那里获得大量您需要的信息。
但是,该项目不再支持,并且当您处理用户代理检测时,拥有最新资源非常重要。您应该使用类似的项目,例如51degrees.mobi或WURFL。
即使没有这一点,至少你可以检查Request.Browser.IsMobileDevice
。
MDBF现在已经很老了。例如;它不包含平板电脑或4G/LTE设备。你可以试试NuGet的51Degrees.mobi(http://nuget.org/packages?q=51degrees)。这是一个零配置的单击安装。 – 2012-02-22 10:10:15
由于珍贵声明 - 用户代理
但,你真的要问“是不是手机”?或者你真的想要别的东西吗?
这些日子里,线条正在模糊。我以99美元的价格从eBay购买了7英寸的Android平板电脑,这是一款手机吗?是一款带6英寸屏幕的迷你上网本吗?是一种类似Kidnle的设备吗?
我只是想知道为什么你想知道它是一个移动'手机屏幕尺寸?处理能力?别的东西?
您可能确实是指移动电话,但如果没有,请重新说明,我们可以进一步提供帮助。
您可以检查User-Agent字符串。在JavaScript中,这非常简单,它只是导航器对象的一个属性。
var useragent = navigator.userAgent;
您可以检查设备,如果iPhone或黑莓在JS的东西,如
var isIphone = !!agent.match(/iPhone/i),
isBlackberry = !!agent.match(/blackberry/i);
如果isIphone是真的,你是从iPhone访问该网站,如果isBlackBerry您正在访问的网站黑莓。
您可以使用“UserAgent Switcher”插件为Firefox来测试。
使用httpRequest.Browser.IsMobileDevice
在Session_Start
void Session_Start(object sender, EventArgs e)
{
// Redirect mobile users to the mobile home page
HttpRequest httpRequest = HttpContext.Current.Request;
if (httpRequest.Browser.IsMobileDevice)
{
string path = httpRequest.Url.PathAndQuery;
bool isOnMobilePage = path.StartsWith("/Mobile/",
StringComparison.OrdinalIgnoreCase);
if (!isOnMobilePage)
{
string redirectTo = "~/Mobile/";
HttpContext.Current.Response.Redirect(redirectTo);
}
}
}
将用户代理填充有那些具体的“设备信息”中的问题要求? – yathirigan 2015-04-30 05:46:26