Kakao.Link.sendDefault 클릭 관련 문의

Kakao.Link.sendDefault 를 모바일웹으로 구현하였습니다.

구현하여 보았는데,

  1. 모바일 휴대폰에서만 처리가 되는게 맞는가요?

  2. 버튼을 클릭하게 되면 이상없이 동작하는데, 1,2번 정도 적용시키게 되면 무반응이 되곤 합니다.
    진행하는 곳에 alert창으로 확인을 해봐도, Kakao.Link.sendDefault 소스전까지는 문제 없는데 카카오톡이 열리지가 않네요.

          alert("aaaa");
    
         Kakao.Link.sendDefault({
             objectType: 'feed',
             content: {
                 title: "${siteinfo.site_maintitle}",
                 description: "국내 온라인 제1의 휴대폰 전문몰\r\n추천을 통해 구매해 주시면 추첨을 통해서 푸짐한 사은품을 드립니다.\r\n",
                 imageUrl: '${imgurl }/data/upload/${site_logo}',
                 link: {
                     mobileWebUrl: rc_url,
                     webUrl: rc_url
                 }
             },
             buttons: [
                 {
                     title: '자세히보기',
                     link: {
                         mobileWebUrl: rc_url,
                         webUrl: rc_url
                     }
                 }
             ]
         });
  1. pc, 모바일 모두 지원합니다. pc 환경에서는 웹 쉐어러를 통해 공유합니다.
  2. 데모에서도 동일한 문제가 발생하시나요? 문제가 발생한 환경(디바이스 버전, 브라우저 버전 등)을 알려주세요.

증상이 파악되어 확인해 보시라고, 구현페이지를 하나 만들었습니다.

http://test1.mnprice.com/event/recomm_test.do -> 모바일에서만 확인 가능

테스트는 jquery dialog를 통한 팝업 후 카카오링크를 해 보았고,
dialog 팝업을 통하지 않고 메인에서 카카오 링크를 테스트해 보았습니다.

  1. 테스트 1

    1.1 팝업을 열고 팝업안에서 카카오링크를 클릭, => 성공
    카카오링크를 재 클릭 시 카카오링크가 진행안됨.

        메인페이지에 있는 카카오링크 클릭시 진행안됨. 
     
        --> 팝업에서 카카오링크를 클릭을 한경우 한번만 되고 나머지는 모두 안됨. 
    

    1.2 메인에서 카카오 링크 실행 -> 성공
    메인에서 재 클릭시 모두 실행 성공
    팝업을 열고 카카오링크 모두 실행 성공

    결론: dialog 팝업을 통해 링크를 실행했을때 그 이후는 모두 실패
    메인에서 바로 카카오 링크를 실행햇을때는 그 이후는 팝업이든 메인이든 언제나 성공

위와 같은 현상이 일어나고 있습니다.
테스트 환경은 갤럭시 S10으로 테스트 중이오니 문제되는 버전은 아닌것 같습니다.

한번 확인 부탁드립니다.

1개의 좋아요

Kakao JavaScript SDK 에서 cors 이슈로 easyXDM을 사용하고 있습니다. 해당 easyXDM은 iframe으로 cors를 회파하는데요. 카카오 링크 전송 시 easyXDM으로 메시지 작성하는 과정을 거치게 됩니다.
문제가 되는 플로우는, (브라우저 콘솔에서 확인하실 수 있습니다)

  1. 다이얼로그 팝업 (해당 element 생성. body 마지막에 위치)
  2. 카카오링크 전송 (메시지 작성을 위한 easyXDM을 위한 iframe 구성. body 마지막에 위치)
  3. 다이얼로그 팝업 element 가 body 다시 마지막에 위치하게 됨. (easyXDM의 iframe의 위치가 한칸 올라가게 됨.)

easyXDM 구조상 iframe의 위치가 변경되면 올바르게 동작되지 않는 문제가 확인되었습니다.

해당 문제를 해결하기 위해서는, 팝업 엘리먼트를 미리 생성해두거나 혹은 Kakao.Link.sendDefault를 호출하기 전 Kakao.API.cleanup 을 통해 easyXDM을 초기화해 주시기 바랍니다.