좌표로 주소 얻어내기 Geocoder함수와 관련하여

안녕하세요.
10월 29일 Geocoder 함수와 관련하여 란 제목으로 문의 드린 적이 있습니다.
다음지도 스타일 변경을 적용 안한 상태에서는 vb,NET 응용프로그램 폼 웹브라우저 컨트롤를 이용해서 다음지도를
아무 문제 없이 현재 잘 사용하고 있습니다.

카카오 정책에 따라
JavaScript -> API Docs 를 참조하여 apikey값 바꾸고 간단한 함수명 바꿨는데 이상하게 적용이 안되서

DaumMaps API -> sample -> 주소로 좌표를 얻어내기 샘플을 카피해서
src="//dapi.kakao.com/v2/maps/sdk.js?appkey={재발급APIKEY}&libraries=services"
로 키 값을 넣고 http://taxiqweb.cafe24.com/mapkakaotest.html 샘플과 동일하게 해서 서버에 두었습니다.

위 URL로 크롬브라우저 또는 익스플로러 브라우저로 띄우면 DaumMaps API -> sample-> 주소로 좌표를 얻어내기 샘플과
동일하게 지도를 클릭하면 검색 인포윈도우 창이 뜨고 정상입니다.

그러나 vb,NET 응용프로그램 웹브라우저 컨트롤에서 위의 동일한 URL로 접근하면 정상적이지 않은 것이 확인되어 문의 드립니다.
지도도 뜨고 지도 이동등은 정상적이지만
지도를 클릭할 때 검색 인포윈도우 창이 안뜨고 추가해서 넣은 메세지박스만 뜹니다.
즉, 웹브라우저 컨트롤에서는 검색관련은 안되고 있습니다.

문제는
잘 사용했던 vb.net 응용프로그램에서 바뀐 환경은 오로지
카카오 정책에 따라 API Docs 를 참조하여 html에서 apikey값 바꾸고 간단한 함수명 바꾸었는데
Geocoder 함수와 관련하여 적용이 안되고 있습니다.
웹브라우저 컨트롤 설정을 변경해야 하는 문제인지 아니면 카카오지도로 부터 막혀 있는것인지
이것을 어떻게 해결하면 될지 도움말 부탁드립니다.

WebBrowser Control의 window.navigator.userAgent 의 문자열을 확인 부탁드립니다.

MSIE 7.0; 이 보인다면 해당 컨트롤은 지원 범위가 아닙니다.
(이미 WebBrowser Control을 비롯한 WebView, Embedded Web Component 등 메이저 브라우저가 아닌 것들은 지원범위가 아니긴 하지만요…)
Daum 지도 API의 경우에는 IE6까지 대응 범위였기 때문에 동작했지만

현재 카카오 지도 API의 정책상으로는 IE8 이상이 브라우저 대응 범위입니다.
그렇게 버전을 올린 이유는 다름아니라 services 라이브러리의 인증 방식이 변경되었기 때문입니다.

IE7 이하에서는 카카오 API의 인증 체계를 만족시킬 수 없는 기능적인 한계 때문에 내려진 결정이니 양해 부탁드립니다.

만약 위 처럼 IE7을 사용하고 있음이 확인이 된다면,
안타깝지만 저희쪽에서 조치를 해드릴 수 있는 방법은 없습니다.
제가 VB.net를 잘 몰라서 자세히 말씀드리기는 어려우나 만약 가능하다면 WebBrowser Control의 IE Emulation 버전을 8.0으로 변경하는 쪽으로 생각해 보셔야 할 것 같네요.

2개의 좋아요

친절한 도움말 감사합니다.
우선 MessageBox.Show(webBrowser1.Version.ToString()) 해보니 11… 이고요.
'webBrowser1.Navigate(“http://taxiqweb.cafe24.com/mapkakaotest.html”, False) '이것을 True로 놓으면
새로운 브라우저에 뜨는 값이고 익스플로러 11… 로 뜨니 버전이 낮아서 그런거 같지는 않구요. 후에 vb.net 2017 버전으로 웹소켓까지 적용되니 한번 깔아서 확인해봐야 겠습니다.

WebBrowser Control 설정을 스크립트 에러 뜨도록 했더니 아래와 같이 뜹니다. 어떤 뜻인지 알려주시면 고맙겠습니다.
http://s1.daumcdn.net/svc/attach/U03/cssjs/mapapi/libs/1.0.1/1515130215283/services.js

그렇다면 vb.net 에서는 Winhttp 로 접근해서 파싱하는 방법이 남아 있는데 검색해보니 자료가 몇개 없더군요.
열심히 검색하고 있는 단계인데요 . 가능한 방법인지 아시면 도움말 부탁드립니다.
그리고 IE8 버전 이상이라고 보시고 WebBrowser Control 정도에서 는 문제가 없어야 한다고 저는 생각합니다. ^^

1개의 좋아요

그럼 버전 문제는 아니네요.

그럼 services.js 에 문제가 있다는건데… 끄응…

일단 외부에서 config로 스크립트 오류로 인한 실행 중단 레벨을 낮출 수 있나요?
경고 레벨도 실행 가능하도록 이요.

실제 브라우저에서는 보안 경고가 뜨긴 합니다.
이게 실제 cross domain 호출하는 스펙상으로 문제가 없는 방식인데
유독 IE11에서만 경고가 뜨는 문제라서 일단 그냥 넘어갔었는데 이것 때문인 듯 하네요.
(경고는 뜨지만 제대로 실행은 됩니다.)

아마 웹브라우저 컨트롤의 자바스크립트 실행 설정 부분에서 이 경고 수준을 낮추거나 무시할 수 있지 않을까 싶은데…

한 번 시도해 보세요.
저는 저 나름대로 해결책이 있는지 확인해 보겠습니다.

1개의 좋아요