问题 asp.net:如何检测iOS / Android?


我最近推出了一个用C#/。net 4.0编写的Web应用程序,广泛使用jQuery和jQuery UI来提供最佳的用户体验。

但是,有些用户在通过iPhone或Android设备使用本网站时报告了问题。

检测iOS和Android的最佳方法是什么? 这样我就可以调整每个浏览器的UI。


6022
2018-06-01 13:29


起源

尝试浏览[user-agent]标记: stackoverflow.com/questions/tagged/user-agent。 - Daryl


答案:


一般来说,您应检测浏览器服务器端,然后将正确的模板/视口呈现给浏览器。通过浏览器检查发送到服务器的用户代理字符串 - iOS通常包含子串,“iPhone”和Android使用“Android”后跟版本号(“Android 2.2”)


7
2018-06-01 13:31



@ Andrew-Weir一般来说,我会同意的。不过我的问题是服务器端检测方法,而不是下一阶段 - Peter Bridger
@Peter Bridger:我不太确定“服务器端检测方法”是什么意思。您必须能够访问浏览器详细信息。是BrowserCapabilities还是HttpBrowserCapabilities?我是一个PHP人员,所以我的专业知识在C#领域很明显,但我希望这能提供一些见解。 - Andrew Weir
@ Andrew-Weir我之前使用.net进行移动检测的经验一直不稳定。开发人员朋友使用了Codeplex插件,这有助于,但这会导致奇怪的错误! - Peter Bridger
android默认浏览器包含Linux而没有android,在android ver 4.4上试过 - Adeem


我认为最好的解决方案是尝试字符串

Request.ServerVariables["HTTP_USER_AGENT"]

到目前为止,这将返回Android设备的android。 Windows很容易检测到。 有人用其他水果帮助我。

查看更详细的解决方案 http://www.codeproject.com/Articles/34422/Detecting-a-mobile-browser-in-ASP-NET


2
2017-12-27 06:56



您还可以使用:Request.Headers [“User-Agent”] - bytedev


这是一个ASP.NET扩展(显然,我还没有使用它)为你完成所有这些:)

http://51degrees.codeplex.com/


1
2018-06-01 13:40





IsMobileDevice在我的Android手机上没有给出正确的答案。 这是我用过的代码。

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server">



protected void  TextBox1_TextChanged(object sender, EventArgs e)
{

}

protected void  Button1_Click(object sender, EventArgs e)
{
    System.Web.HttpBrowserCapabilities browser = Request.Browser;
    string s = "Browser Capabilities\n"
        + "Type = " + browser.Type + "\n"
        + "Name = " + browser.Browser + "\n"
        + "Version = " + browser.Version + "\n"
        + "Major Version = " + browser.MajorVersion + "\n"
        + "Minor Version = " + browser.MinorVersion + "\n"
        + "Platform = " + browser.Platform + "\n"
        + " Is MobileDevice ? " + browser.IsMobileDevice + "\n"
        + " screen Height " + browser.ScreenCharactersHeight + "\n"
        + " screen width " + browser.ScreenCharactersWidth + "\n"
        + "Is Beta = " + browser.Beta + "\n"
        + "Is Crawler = " + browser.Crawler + "\n"
        + "Is AOL = " + browser.AOL + "\n"
        + "Is Win16 = " + browser.Win16 + "\n"
        + "Is Win32 = " + browser.Win32 + "\n"
        + "Supports Frames = " + browser.Frames + "\n"
        + "Supports Tables = " + browser.Tables + "\n"
        + "Supports Cookies = " + browser.Cookies + "\n"
        + "Supports VBScript = " + browser.VBScript + "\n"
        + "Supports JavaScript = " +
            browser.EcmaScriptVersion.ToString() + "\n"
        + "Supports Java Applets = " + browser.JavaApplets + "\n"
        + "Supports ActiveX Controls = " + browser.ActiveXControls
              + "\n"
        + "Supports JavaScript Version = " +
            browser["JavaScriptVersion"] + "\n";

    TextBox1.Text = s;
}
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

        <asp:TextBox ID="TextBox1" runat="server" ontextchanged="TextBox1_TextChanged" 
            Width="955px" Rows="22" TextMode="MultiLine"></asp:TextBox>

        <br />
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" 
            Text="Find browser" Font-Size="Large" Width="145px" />

    </div>
    </form>
</body>
</html>

你可以试试代码  www.abcd.com.au/browser.aspx 用你的手机或其他设备。


0
2017-12-27 05:54