2

나는 장치를 감지하기 위해 WURFL (최신 버전, 2.3.2)을 사용하는 Ektron 사이트를 가지고 있습니다. IE9를 사용하여 사이트를 탐색 할 때 사용자에게는 사이트의 모바일 버전이 표시됩니다.IE9가 WURFL을 통해 모바일로 감지 됨

는 사용자 에이전트 내가 WURFL homepage에이 UA를 입력 할 때, 일반적인 웹 브라우저로 보여줍니다

Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) 

을 인걸요.

그러나 Asp.NET WURFL 라이브러리를 사용하면 모바일로 탐지됩니다.

다음 코드 -

IWURFLManager wurflManager = wurflManagerProvider.WURFLManager; 
IDevice device = wurflManager.GetDeviceForRequest(Request); 
var device_os = device.GetCapability("device_os"); 
var device_os_version = device.GetCapability("device_os_version"); 
var device_model = device.GetCapability("model_name"); 

deviceinfo.Text += "WURFL Model: "; 
deviceinfo.Text += device_model; 

deviceinfo.Text += "WURFL Device OS: "; 
deviceinfo.Text += device_os; 

deviceinfo.Text += "WURFL Device OS Version: "; 
deviceinfo.Text += device_os_version; 

Outputs-

WURFL Model: Windows Mobile 7.5 
WURFL Device OS: Windows Phone OS 
WURFL Device OS Version: 7.5 

왜 이런 일이 무엇입니까?

답변

1

문제는 WURFL이 데스크톱 장치와 모바일 장치를 구별하지 못한다는 것입니다. 모바일 장치에만 초점을 맞 춥니 다. 데스크톱은 종종 모바일 장치로 감지됩니다. 해결 방법은 desktop_browser_patch.xml 파일을 포함시키는 것입니다. 그러나 패치 파일에 수동으로 Firefox 15와 16을 추가하고 나올 Firefox의 모든 버전을 업데이트해야합니다.

데스크톱이나 모바일인지를 결정하기 위해 사용자 에이전트에서 정규 표현식을 사용하는 것이 더 나은 것으로 나타났습니다. Wurfl을 사용하여 모바일 장치 인 경우 장치 기능을 감지하십시오. 온라인에 여러 정규 표현식이 있습니다. 그들은 모두 불완전합니다. 또한 Request.Browser.IsMobileDevice를 확인하십시오. 그것이 사실이라면, 그것은 모바일 장치입니다. false 인 경우 모바일 장치 일 수도 있고 아닐 수도 있습니다.

1

나는 파티에 약간 늦었지만이 문제에 대해서는 Ektron 지원팀에서 일했습니다.

최대 Ektron 버전 8.6에서는 tholder WURFL API 드라이버를 사용하고있었습니다. 그리고 제대로 작동하지 않습니다. Internet Explorer 9을 모바일 브라우저로 탐지했을뿐만 아니라, 모바일 브라우저로 안드로이드 OS 4.0+도 탐지하지 못했습니다 (항상 데스크탑을 보여주었습니다).

패치 파일도 문제를 해결하지 못했습니다.

전체 wurfl.xml.gz 파일을 읽지 않았기 때문에이 문제에 대한 이유가있었습니다.

Ektron 지원을 여러 번하고 나서이 문제를 해결하기 위해 Ektron 8.6 용 핫픽스를 제작하는 것이 큰 과제로 결정되었습니다.

Ektron 8.7로 업그레이드하면 새로운 WURFL API 드라이버를 사용하고 IE 9와 Android를 올바르게 감지하므로 문제가 발생합니다.