개요
- Mobile Web Browser에서 Kakaotalk 아이콘 터치 시,
Kakaotalk을 실행하는 기능에 대한 구현
- iOS, Android에서 실행하는 방법에 미묘한 차이가
있어서 생기는 문제 공유
App 호출 방법
- kakaolink://sendurl?파라메터 형식으로
location.href를 변경
- APP이 설치되어있다면, 해당 요청에 의해서
화면 전환이 일어남
- setTimeout으로 특정 시간 내에 화면 전환이
일어나지 않은 경우, 미설치로 간주
문제점
- safari인 경우 url이 올바르지 않으면 alert을 띄우며
이동을 하지 않지만, safari가 아닌 경우는 404 not found
출력
- 위의 문제를 해결하기 위해 android에서는 iframe 삽입을
이용
- iframe이기 때문에, 보안이슈가 발생함.
특정 brower에서는 iframe을 삽입하여
화면전환 시도 시 brower 차원에서 차단
- android chrome brower에서 해당 현상 확인
해결방법
- android에서는 kakaolink://가 아니라
intent: 로 호출 시 APP 호출 가능함
- android chrome에서 정상작동 확인
그러나...
- intent로 호출되는 경우 APP이 설치되어 있지
않으면 강제로 마켓으로 이동함
- as-is 요구사항은 APP이 설치되어 있지 않다면
마켓으로 이동하는 게 아니라 미설치 알림을
나타내는 것
- 해당 기능 chrome에서는 구현 불가
설상가상으로..
- android 특정 버전(jelly bean)부터는 내장 브라우저가
chrome(이전 버전은 webkit + v8 구현체)
- 같은 android기기여도 내장 browser가 다르게 되버리는
문제 발생
- safari(iOS)에서는 APP이 설치되어 있지 않은 경우,
"올바르지 않은 url입니다" 라는 alert이 자동으로 뜨는데
이 부분도 제어 불가
- 현재 m.gsshop.com에서는 위의 문제들을 해결하지 않아서
chrome brower or jelly bean 이후 버전의 내장 browser로는
kakaotalk app 실행이 안 되는 문제 있음
결론
- 현재 iOS와 Android만 해도 이정도의 문제가 있는데,
추후 Taizen, Window Mobile, Firefox OS 등을
지원해야 한다면.......