카카오링크로 공유하기 클릭시 고유창 호출은 잘됩니다.
문제는 공유창에서 공유를 하지 않고 취소를 누른후에 다시 공유를 누르면 공유창이 뜨지 않고 있는건데요.
어떤식으로 처리 해야 하나요?
웹뷰에서 처리 되어야 합니다.
말씀하신 공유창이 카카오톡 공유화면을 말씀하시는 것이 맞을까요?
아래 이슈와 같은 원인인지 확인 부탁드립니다.
https://devtalk.kakao.com/t/kakao-link-senddefault/77595/4?u=karl.lee
작업한 코드 참조해 드리겠습니다.
function kakaotalk_send(url, txt) {
if(!navigator.userAgent.match(/android/i) && !navigator.userAgent.match(/(iphone)|(ipod)|(ipad)/i) ){
alert(‘이 기능은 카카오톡 앱이 설치되어 있는 모바일 기기에서만 전송 가능합니다.’);
return ;
}
Kakao.init('API');
var message = txt.split("||").join("\n");
var label = message;
Kakao.Link.sendDefault({
objectType: 'feed',
content: {
title: label,
description: label,
imageUrl: '<?=$SNS_IMG?>',
link: {
mobileWebUrl: url,
webUrl: url
}
}
});
Kakao.API.cleanup();
}
// 카카오스토리 공유하기
function shareStory(url , txt) {
Kakao.Story.share({
url: url,
text: txt
});
}
보시는 바와 같이 수정을 했는데요.
같은현상입니다.
근데 헤당 패이지에 공유하는 부분이 총 3가진데요.
(페이스북, 카카오, 카카오스토리)
카카오 실행 (처리됨) -> 카카오 실행(처리안됨) 인데
카카오 실행 (처리됨) -> 페북, 카카오스토리 실행(처리됨) -> 카카오 실행 (처리됨)
입니다.
위에 알려주신 이슈는 아닌거 같네요.
카카오스토리는 별도의 프록시 작업이 필요없기에 관계가 없으며, 페이스북은 다른 SDK이므로 연관이 없습니다.
Kakao.API.cleanup 을 링크전송 이후가 아닌 직전에 호출해주시도록 수정한 후 다시 확인 부탁드립니다. (보다 정확한 원인 파악을 위해 재현 가능한 URL을 공유해주시면 감사하겠습니다. 공개하시기 곤란하다면 메시지로 주셔도 됩니다.)
그리고, 카카오링크는 데스크탑 환경에서도 전송 가능하니 참고 바랍니다.
function kakaotalk_send(url, txt) {
Kakao.init(‘988e45c76ccfe45b86f45dd6f6c16a13’);
var message = txt.split("||").join("\n");
var label = message;
// Kakao.API.cleanup();
Kakao.Link.sendDefault({
objectType: ‘feed’,
content: {
title: label,
description: label,
imageUrl: ‘<?=$SNS_IMG?>’,
link: {
mobileWebUrl: url,
webUrl: url
}
}
});
// Kakao.API.cleanup();
}
말씀 하신대로 claenup 위치를 바꿔도 동일한 현상입니다.
아울러 웹에서 공유가 된다고 하셔서 웹에서 테스트 했을시 크롬 콘솔창에 아래와 같은 오류가 납니다.
Uncaught l {name: “KakaoError”, message: “Kakao.init: Already initialized.”}
하이브리드로 작업하고 있기 때문에 웹, 웹뷰 둘다 오류 없이 처리가 되어야 합니다.
확인 가능 링크는 메세지로 보내 드립니다.
Kakao.init은 초기 1회만 호출되어야 합니다. 2회 이상 호출 시에는 오류가 발생합나다.
2회 이상 시도시 카카오링크가 실행되지 않는 상황에서 별도의 에러 메시지는 없었나요?
아…
그거 때문이었네요~~~
감사합니다~~~!!!