모바일, 혹은 터치 스크린 터치 이벤트

네이버 지도에서 다음 지도로 이전 작업을 하여 거의 대부분 이전이 진행된 상태입니다.

저희 최종 목표가 터치 모니터에서 작동이 되야하는데 기존 네이버 지도와는 다르게

터치 이벤트가 정상 동작하지 않습니다.

테스트 하다가 보니까 다음지도나 다음지도 api 코너의 예제들도 터치 이벤트가 동작하지 않더군요.

혹 해결 방법이 없는가요?

터치 디바이스 기종이 어떻게 되나요?

로컬에서 테스트할때는 HID 규격 터치 모니터 로 표시되는 장치로 했고

실제는 DID display in display 로 모니터 3 x 2 로 6대 연결해서 사용하고 있습니다.

크롬의 디바이스 에뮬모드로 테스트해보니까 좌우 폭을 변경시켜서 디바이스 등록하면 터치 이벤트가 작동하지 않던데

갤럭시등 모바일 디바이스 프리셋으로 다음 지도를 생성하면 터치 이벤트가 화면폭이 바뀐다음에도 작동합니다.

map을 둘러싸는 터치 이벤트가 dom전체에 전파되는 걸 막기 위해 e.preventDefault()로 막고 테스트 하였습니다.

에뮬 모드로 테스트 해보니까 user-agent string 에 android 문자만 있으면 터치 이벤트가 동작하는 걸 보니까

api에서 user-agent string을 파싱하여서 터치 이벤트의 작동 여부를 판단하는 루틴이 있는거 같은데 강제할 방법은 없을런지요…

현재 강제할만한 방법은 없습니다.

API내부에서 터치 가능한 디바이스를 찾는 디텍션 로직이 꽤 오래전에 작성되었으며
그 당시 크롬 브라우저에서 발생하고 있던 터치 관련 버그를 대응 하고 있었던 코드라
말씀해 주신 상황에서는 정상적으로 동작하지 않습니다.

현 상황에 맞는 디바이스 디텍션 로직으로의 변경을 고려중에 있으니
내부적으로 부작용이 없는지 테스트 해 본 이후에
배포해 보도록 하겠습니다.

지금 현재 내부적으로 userAgent string에 android를 넣어서 테스트를 해보았는데

크롬에서 터치가능한 노트북(DID)에서 터치 이벤트와 마우스 이벤트를 동시에 사용해야만 하는데

로딩될때 userAgent에 android가 들어가면 터치 이벤트만 먹고

없으면 마우스 이벤트만 동작합니다.

테스트에 사용한 코드입니다.

Object.defineProperty(navigator, ‘userAgent’, {get: function () { return ‘Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Mobile Safari/537.36’; }})

확인 좀 부탁드리고… 혹시 내부 테스트 후에 배포가 언제쯤 가능한지 대략적인 거라도 알수 없을까요?

현재 테스트 중이며
다음주 초쯤 배포하려고 준비중입니다.

생각보다 배포가 늦어진 점, 죄송합니다. 한 번 테스트 해보시겠어요?

죄송합니다;; 문제가 있어서 이 전 버전으로 롤백을 했습니다.
정상적으로 수정되면 다시 연락 드리겠습니다.

리플보고 테스트 하면서 버그 작성 중이었는데

금방 롤백되서요…

일단 저희가 발견한건 확대 축소 터치 동작과 터치 스크린에서 터치는 작동하는데

마우스 클릭이벤트가 마커에 작동이 되질 않아서 이것 저것 테스트 하던 중이었습니다.

나중에 수정하시면 다시 리플 부탁드립니다.

안타깝지만…
몇 주간 배포 => 롤백을 2번 하면서 깨달았는데,
내부적으로 워낙 touch / mouse 이벤트 로직이 배타적으로 동작하는 로직이 많아서
둘 환경 중 하나를 선택하지 않으면 이벤트가 꼬이게 됩니다.
모든 환경에서 동작하도록 지원해 드리기는 힘들 것 같습니다.

나름 여러 시도를 해봤지만
코어부분을 전체 수정하지 않는 한, 이 이벤트 관련 부분은 수정하기 힘들어 보이며,
이미 구현하신 다른 분들에게 어떠한 부작용이 생길지 몰라서
현실적으로는 지원 불가 결정을 내렸습니다.

결론이 나올때까지 오래 기다리게 해드린 점,
그 결과 또한 원하시는 방향이 아니라는 점 죄송하게 생각합니다.

2개의 좋아요

안녕하세요. 크롬에서 스타일러스 펜이나, 터치를 쓰는 경우 사용자 경험이 않좋습니다.
이부분은 검토해 보시는게 어떠실런지요?

태생적으로 두 가지 모두를 지원할 수 없는 상황이라 검토가 어려운점 양해 부탁드립니다.