Получить версию Android на стороне сервера, используя ASP.Net - PullRequest
2 голосов
/ 09 февраля 2012

Я пытаюсь определить версию Android для Android, например 2.2 ... 4.0. Я занимаюсь разработкой веб-приложения в Asp.Net 4.0 MVC 3.0 C #. Я пробовал с классом HttpBrowserCapabilitiesBase. Как мне этого добиться?
Все идеи приветствуются.
Спасибо всем.

Ответы [ 3 ]

0 голосов
/ 09 февраля 2012

взято из шаблона Nuget mvcmobile, средство определения, если мы смотрим на мобильное устройство. Вы можете редактировать / рефакторинг для соответствия:

public static bool IsSupportedMobileDevice(this HttpRequestBase request)
{

    bool isMobile = request.Browser.IsMobileDevice;
    string userAgent = request.UserAgent.ToLowerInvariant();

    isMobile = isMobile 
            || (userAgent.Contains("iphone")
            || userAgent.Contains("blackberry")
            || userAgent.Contains("mobile")
            || userAgent.Contains("windows ce")
            || userAgent.Contains("opera mini")
            || userAgent.Contains("palm")
            || userAgent.Contains("fennec")
            || userAgent.Contains("adobeair")
            || userAgent.Contains("ripple")
        );
    return isMobile;

}

использование в контроллере:

if (Request.IsSupportedMobileDevice()){...}

этот шаблон nuget на самом деле очень полезен, его стоит посмотреть. см:

http://visualstudiogallery.msdn.microsoft.com/9df9c61c-4d90-43e5-9aa1-a58786b7a1e4?SRC=VSIDE

этот шаблон фактически функционирует, создавая переопределение viewengine, когда он обнаруживает мобильное устройство на стороне сервера, тем самым позволяя отображать определенные мобильные представления для мобильных устройств. Я должен сказать, что в моих кратких тестах это работает довольно хорошо.

[править] - для iphone пользовательский агент:

mozilla/5.0 (iphone; u; cpu iphone os 4_0 like mac os x; en-us) applewebkit/532.9 (khtml, like gecko) version/4.0.5 mobile/8a293 safari/6531.22.7

и для типичного андроида:

Mozilla/5.0 (Linux; U; Android 2.3.3; en-us; HTC_DesireS_S510e Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

поэтому вы можете проанализировать строку userAgent и определить местонахождение «версии» (в приведенном выше примере - Android 2.3.3), так как я на 100% уверен, что она будет постоянной для всех строк userAgent. очевидно, это было бы утомительно для целого ряда «не андроидных» устройств, но, надеюсь, иллюстрирует потенциал.

0 голосов
/ 09 февраля 2012

WURLF http://wurfl.sourceforge.net/dotNet/ может сделать это. Довольно прост в настройке и использовании

0 голосов
/ 09 февраля 2012

Вы должны иметь возможность проверить значение HttpRequest.UserAgent .

Похоже, если вы проверяете значений агента пользователя из этого свойства, оно должно содержать "Android 2.2", "Android 3.0" и т. Д.

...