From d8441c31df5473fc9b0ecf648aa55570b982506d Mon Sep 17 00:00:00 2001 From: chicpro Date: Fri, 21 Feb 2014 14:34:38 +0900 Subject: [PATCH] =?UTF-8?q?=EB=AA=A8=EB=B0=94=EC=9D=BC=EC=87=BC=ED=95=91?= =?UTF-8?q?=EB=AA=B0=20=EC=B9=B4=EC=B9=B4=EC=98=A4=ED=86=A1=20=EB=A7=81?= =?UTF-8?q?=ED=81=AC=20=EB=B3=B4=EB=82=B4=EA=B8=B0=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- js/kakao.link.js | 95 +++++++++++++++++++++++ lib/shop.lib.php | 3 + mobile/skin/shop/basic/item.form.skin.php | 49 ++++++++++++ 3 files changed, 147 insertions(+) create mode 100644 js/kakao.link.js diff --git a/js/kakao.link.js b/js/kakao.link.js new file mode 100644 index 000000000..872b6f296 --- /dev/null +++ b/js/kakao.link.js @@ -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)); diff --git a/lib/shop.lib.php b/lib/shop.lib.php index 8e17dce38..d2f904887 100644 --- a/lib/shop.lib.php +++ b/lib/shop.lib.php @@ -1421,6 +1421,9 @@ function get_sns_share_link($sns, $url, $title, $img) case 'googleplus': $str = '구글플러스에 공유'; break; + case 'kakaotalk': + $str = ''; + break; } return $str; diff --git a/mobile/skin/shop/basic/item.form.skin.php b/mobile/skin/shop/basic/item.form.skin.php index 895267296..b5d52edc6 100644 --- a/mobile/skin/shop/basic/item.form.skin.php +++ b/mobile/skin/shop/basic/item.form.skin.php @@ -7,6 +7,7 @@ add_stylesheet('', +
@@ -64,6 +65,7 @@ add_stylesheet('', + @@ -456,4 +458,51 @@ function fitem_submit(f) return true; } + +// 카카오톡 링크 보내기 메세지 입력 +function kakaolink_message() +{ + var popup = "
"; + popup += ""; + popup += ""; + popup += ""; + popup += ""; + popup += ""; + popup += ""; + popup += "
"; + + $("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 : "", + appid : "", + appver : "2.0", + appname : "", + type : "link" + }); + + $("#kakao_message").remove(); + + return false; + +} \ No newline at end of file