카카오톡 공유하기 앱 미실행 이슈

문의 시, 사용하시는 SDK 버전 정보와 디벨로퍼스 앱ID를 알려주세요.


앱ID: 470578

버전은 1.44.0입니다

안녕하세요, 카카오 공유하기를 구현하려고 하는데
PC에서는 기능이 정상적으로 동작하지만 모바일일 경우 공유하기를 위한 앱 실행이 되지 않습니다.

버전의 경우 카페24 플랫폼을 사용해 플랫폼에서 자동으로 넣어주고 있습니다.

샘플 코드를 적용했을 때도 작동하지 않은 것으로 보아 코드 상으로 문제점을 발견하지 못했고 도메인이나 다른 문제라고 생각합니다.

확인해주시면 감사하겠습니다.

참고정보.


5.1. 카카오톡 공유 문제 상황 체크 리스트
5.2. 텍스트 영역 글자수 제한
5.3. 이미지 사용 안내, 첨부 이미지 형식 제한
5.4 [카카오톡 공유] 버튼 링크가 동작하지 않아요 / 다른 페이지로 이동합니다.

가이드. 카카오톡 공유 에러코드
가이드. 카카오톡 공유 FAQ

[ @tim.l @woody.ho ]

재현 가능한 URL 기재해주시겠어요?

https://m.medi-all.co.kr/product/detail.html?product_no=211 입니다 !

해당 페이지에는 (모바일에서) 카카오톡 공유가 아니라 OS 공유 기능만 보이는데요.

카카오톡 공유하기 적용된 위치 알려주시겠어요?

다시 카카오톡 공유하기로 바꿔놓았습니다!


    // 카카오톡 공유하기 연결
    $(document).on("click", "#kakaoShareBtn", function(e){
        e.preventDefault();
        e.stopPropagation();

        console.log("click");

        if (Kakao.isInitialized() === false) {
            Kakao.init('582751e16884c8a9d7644113cfcf0746');
        }

        var prdName = $('.prdDetail_info.name .desc').text();
        var prdImg = $('.prdDetail_thumbnail .ThumbImage').attr('src');
        var shareUrl = location.href;

        Kakao.Share.sendDefault({
            objectType: 'feed',
            content: {
                title: prdName,
                description: "메디올",
                imageUrl: prdImg,
                link: {
                    mobileWebUrl: shareUrl,
                    webUrl: shareUrl,
                }
            },
            buttons: [{
                title: '웹으로 보기',
                link: {
                    mobileWebUrl: shareUrl,
                    webUrl: shareUrl,
                }
            }]
        });
    });

위 공유하기 스크립트를 설정하신 상품상세 페이지 JS 에서 카카오 SDK 에서 사용하는 XMLHttpRequest 객체 커스터마이징이 있어서 SDK가 간섭받아 카카오톡앱 실행처리 실패되었습니다.

아래 스크립트는 카페24에서 제공한게 아니라 직접 적용하신거죠?

            var oldXHR = window.XMLHttpRequest;
            function newXHR() {
                var realXHR = new oldXHR();
                realXHR.addEventListener("readystatechange", function() { 
                    if (realXHR.readyState == 4 && realXHR.status == 200) {
                        var chkXHR = realXHR.responseURL;
                        window['oldURL'] = chkXHR; 
                        window['oldResponseText'] = realXHR.responseText;
                        let IV_WINDOW_AJAX_REQUEST = new CustomEvent('IVajaxRequestAfter');
                        document.body.dispatchEvent(IV_WINDOW_AJAX_REQUEST);
                    };
                }, false);
                return realXHR;
            };
            window.XMLHttpRequest = newXHR;

이너뷰 코드라서 저희쪽에서 건드릴 수 없는 코드입니다
혹시 다른 해결 방법이 있을까요 ?

XMLHttpRequest 객체가 훼손되었으므로 SDK를 사용하실 수 없습니다.

다른 카페24 사이트들은 해당 코드가 없는데, 건드릴 수 없는게 맞는지 확인해보시겠어요?

저 코드는 히스토리 파악이 어려운 코드라서 어떤 이슈가 발생할 지 몰라 함부로 건드릴 수 없는 코드입니다.

대안으로 카카오톡 공유하기 대신 SNS 공유하기 기능으로 바꿀 것 같습니다.

답변 감사합니다 !

1개의 좋아요