Мобильное устройство определяется как немобильное.

Я включил мобильную веб-форму в свой проект asp.net, я думал, что ее можно / нужно видеть только для моих мобильных пользователей, но я понимаю, что ее также можно увидеть из любого браузера, я не вижу здесь проблемы, потому что Я мог бы различать доступ с помощью HttpBrowserCapabilities.IsMobileDevice = true и переходить на соответствующую страницу aspx, но это приводит к тому, что когда я открываю веб-форму со своего мобильного устройства, она определяется как IsMobileDevice = false и отправляет меня на другую страницу.

Как такое могло быть?

Мобильное устройство работает под управлением Pocket PC 2003.

Ответов (3)

Решение

Некоторые из них не распознаются, потому что UserAgent был испорчен или используется новый браузер. Такие как Opera Mobile 9.5. Чтобы исправить это, вам нужно создать файл браузера (* .browser) специально для определения этого. Мне пришлось сделать это для нового агента UserAgent на основе Mozilla, который отправляется из Google.

ИМХО: значение HttpContext.Current.Request.Headers("User-Agent") - гораздо более безопасная ставка, поскольку оно фактически указывает на браузер, который делает запрос, а не на тип устройства как такового .

На собственном опыте я узнал, что если смартфон отправляет запрос через сторонний браузер к вашей службе, чаще всего какой-либо тест ( HttpCapabilitiesBase.IsMobileDevice и / или HttpContext.Current.Request.Browser.IsMobileDevice ) "какого типа устройство вы используете" завершится ошибкой. .

К сожалению, за исключением большого списка разрешенных пользовательских агентов (или запрещенных пользовательских агентов, если на то пошло), вам просто нужно убедиться, что он не запускается с Mozilla, iPhone или Opera, прежде чем вы визуализируете страницу .. .

На этой арене сложно играть.
Удачи.

I think you should use other DDR better than Microsoft Browser Capabilities. I´m using http://wurfl.sourceforge.net>WURFL, it is open source and maybe it is more extended and updated. There is other commercial DDRs like DeviceAtlas.

There is many some .net libraries but i´m using Marg.Wurfl. It allows to rendering web mobile page using wurfl capabilities.