모바일쇼핑몰 카카오톡 링크 보내기 기능 추가

This commit is contained in:
chicpro
2014-02-21 14:34:38 +09:00
parent 1c4f1d6518
commit d8441c31df
3 changed files with 147 additions and 0 deletions

95
js/kakao.link.js Normal file
View File

@ -0,0 +1,95 @@
/*
Copyright 2012 KAKAO
*/
(function (window, undefined) {
var kakao = {};
window.kakao = window.kakao || kakao;
var uagent = navigator.userAgent.toLocaleLowerCase();
if (uagent.search("android") > -1) {
kakao.os = "android";
if (uagent.search("chrome") > -1) {
kakao.browser = "android+chrome";
}
} else if (uagent.search("iphone") > -1 || uagent.search("ipod") > -1 || uagent.search("ipad") > -1) {
kakao.os = "ios";
}
var app = {
talk: {
base_url: "kakaolink://sendurl?",
apiver: "2.0.1",
store: {
android: "market://details?id=com.kakao.talk",
ios: "http://itunes.apple.com/app/id362057947"
},
package: "com.kakao.talk"
},
story: {
base_url: "storylink://posting?",
apiver: "1.0",
store: {
android: "market://details?id=com.kakao.story",
ios: "http://itunes.apple.com/app/id486244601"
},
package: "com.kakao.story"
}
};
kakao.link = function (name) {
var link_app = app[name];
if (!link_app) return { send: function () {
throw "No App exists";
}};
return {
send: function (params) {
var _app = this.app;
params['apiver'] = _app.apiver;
var full_url = _app.base_url + serialized(params);
var install_block = (function (os) {
return function () {
window.location = _app.store[os];
};
})(this.os);
if (this.os == "ios") {
var timer = setTimeout(install_block, 2 * 1000);
window.addEventListener('pagehide', clearTimer(timer));
window.location = full_url;
} else if (this.os == "android") {
if (this.browser == "android+chrome") {
window.location = "intent:" + full_url + "#Intent;package=" + _app.package + ";end;";
} else {
var iframe = document.createElement('iframe');
iframe.style.display = 'none';
iframe.src = full_url;
iframe.onload = install_block;
document.body.appendChild(iframe);
}
}
},
app: link_app,
os: kakao.os,
browser: kakao.browser
};
function serialized(params) {
var stripped = [];
for (var k in params) {
if (params.hasOwnProperty(k)) {
stripped.push(k + "=" + encodeURIComponent(params[k]));
}
}
return stripped.join("&");
}
function clearTimer(timer) {
return function () {
clearTimeout(timer);
window.removeEventListener('pagehide', arguments.callee);
};
}
};
}(window));

View File

@ -1421,6 +1421,9 @@ function get_sns_share_link($sns, $url, $title, $img)
case 'googleplus':
$str = '<a href="https://plus.google.com/share?url='.urlencode($url).'" class="share-googleplus" target="_blank"><img src="'.$img.'" alt="구글플러스에 공유"></a>';
break;
case 'kakaotalk':
$str = '<button type="button" onclick="kakaolink_message(this);"><img src="'.$img.'" alt="카카오톡링크 보내기"></button>';
break;
}
return $str;

View File

@ -7,6 +7,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
<script src="<?php echo G5_JS_URL; ?>/jquery.nicescroll.min.js"></script>
<script src="<?php echo G5_JS_URL; ?>/jquery.fancyalert.js"></script>
<script src="<?php echo G5_JS_URL; ?>/kakao.link.js"></script>
<form name="fitem" action="<?php echo $action_url; ?>" method="post" onsubmit="return fitem_submit(this);">
<input type="hidden" name="it_id[]" value="<?php echo $it['it_id']; ?>">
@ -64,6 +65,7 @@ add_stylesheet('<link rel="stylesheet" href="'.G5_MSHOP_SKIN_URL.'/style.css">',
<?php echo get_sns_share_link('facebook', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_fb2.png'); ?>
<?php echo get_sns_share_link('twitter', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_twt2.png'); ?>
<?php echo get_sns_share_link('googleplus', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_goo2.png'); ?>
<?php echo get_sns_share_link('kakaotalk', $sns_url, $sns_title, G5_MSHOP_SKIN_URL.'/img/sns_kko2.png'); ?>
</div>
<table class="sit_ov_tbl">
<colgroup>
@ -456,4 +458,51 @@ function fitem_submit(f)
return true;
}
// 카카오톡 링크 보내기 메세지 입력
function kakaolink_message()
{
var popup = "<div id=\"kakao_message\">";
popup += "<form name=\"fkakao\" onsubmit=\"return kakaolink_send(this);\">";
popup += "<label for=\"message\">메세지</label>";
popup += "<textarea id=\"message\" name=\"message\"></textarea>";
popup += "<input type=\"submit\" value=\"보내기\">";
popup += "<button type=\"button\" onclick=\"send_cancel();\">취소</button>";
popup += "</form>";
popup += "</div>";
$("form[name=fitem]").before(popup);
}
function send_cancel()
{
$("#kakao_message").remove();
}
// 카카오톡 링크 보내기
function kakaolink_send(f)
{
var msg = f.message.value;
if(!msg) {
alert("메세지를 입력해 주세요");
return false;
}
/*
msg, url, appid, appname은 실제 서비스에서 사용하는 정보로 업데이트되어야 합니다.
*/
kakao.link("talk").send({
msg : msg,
url : "<?php echo $sns_url; ?>",
appid : "<?php echo $_SERVER['HTTP_HOST']; ?>",
appver : "2.0",
appname : "<?php echo $config['cf_title']; ?>",
type : "link"
});
$("#kakao_message").remove();
return false;
}
</script>