Asp.net: Как обнаружить iOS/Android?
Недавно я запустил веб-приложение, написанное на С#/.NET 4.0, широко использующее пользовательский интерфейс jQuery и jQuery, чтобы обеспечить наилучший пользовательский интерфейс.
Однако некоторые пользователи сообщают о проблемах при использовании сайта с помощью устройств iPhone или Android.
Каков наилучший способ обнаружения как iOS, так и Android?, чтобы затем я мог настроить пользовательский интерфейс для каждого браузера.
Ответы
Ответ 1
В общем случае вы должны обнаружить сторону сервера браузера, а затем отобразить в браузере правильные шаблоны/окна просмотра. Проверьте строку агента пользователя, отправленную на сервер, браузером - iOS обычно содержит подстроку "iPhone", а Android использует "Android", а затем номер версии ( "Android 2.2" )
Ответ 2
Я думаю, лучшее решение - попробовать строку
Request.ServerVariables [ "HTTP_USER_AGENT" ]
Это вернет слово android для устройств Android до сих пор.
Windows легко обнаружить.
Кто-то помогает мне с другим фруктом.
См. более подробное решение на
http://www.codeproject.com/Articles/34422/Detecting-a-mobile-browser-in-ASP-NET
Ответ 3
Здесь расширение ASP.NET, которое (видимо, я его не использовал) делает все, что для вас:)
http://51degrees.codeplex.com/
Ответ 4
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
с вашим мобильным телефоном или другим устройством.