/* Copyright 2012 KAKAO */ var KAKAO = (function () { var KAKAO = { Talk: { os: getOS(), name: 'talk', link: talkLink }, Story: { os: getOS(), name: 'story', link: storyLink }, } function talkLink(msg, url, appName, metaInfo, appId) { msg = msg || ''; url = url || ''; appName = appName || top.location.host; appId = appId || top.location.host; var strMetaInfo = JSON.stringify(metaInfo); var params = ''; if (metaInfo && typeof metaInfo === 'object') { params = getSerialized({ msg: msg, url: url, appid: appId, apiver: AppInfo[this.name || ''].apiver, appname: appName, metainfo: strMetaInfo }); } else { params = getSerialized({ msg: msg, url: url, appid: appId, apiver: AppInfo[this.name || ''].apiver, appname: appName }); } url = AppInfo[this.name || ''].baseUrl + params; var self = this; if (this.os === 'ios') { var timer = setTimeout(function () { installBlockCallback(self.name, self.os); clearTimeout(timer); }, 35); top.location.href = url; } else if (this.os === 'android') { var ifm = document.createElement('iframe'); ifm.style.visibility = 'hidden'; ifm.src = url; ifm.onload = function () { installBlockCallback(self.name, self.os); } var doc = document.documentElement || document.body; doc.appendChild(ifm); } return this; } function storyLink(post, appName, urlInfo, appId) { post = post || ''; appName = appName || top.location.host; appId = appId || top.location.host; var strUrlInfo = JSON.stringify(urlInfo); var params = ''; if (urlInfo && typeof urlInfo === 'object') { params = getSerialized({ post: post, appid: appId, appver: '1.0', apiver: AppInfo[this.name || ''].apiver, appname: appName, urlinfo: strUrlInfo }); } else { params = getSerialized({ post: post, appid: appId, appver: '1.0', apiver: AppInfo[this.name || ''].apiver, appname: appName }); } url = AppInfo[this.name || ''].baseUrl + params; var self = this; if (this.os === 'ios') { var timer = setTimeout(function () { installBlockCallback(self.name, self.os); clearTimeout(timer); }, 35); top.location.href = url; } else if (this.os === 'android') { var ifm = document.createElement('iframe'); ifm.style.visibility = 'hidden'; ifm.src = url; ifm.onload = function () { installBlockCallback(self.name, self.os); } var doc = document.documentElement || document.body; doc.appendChild(ifm); } return this; } function installBlockCallback(name, os) { name = name || ''; os = os || ''; try { var store = AppInfo[name].store[os]; top.location.href = store; } catch (e) { } } function getSerialized(params) { params = params || {}; var ret = []; for (var n in params) { if (params[n]) ret.push(n + '=' + encodeURIComponent(params[n])); //if (params[n]) ret.push(n + '=' + params[n]); } return ret.join('&') || []; } // 해당 모바일 디바이스 타입 반환 function getOS() { var ua = window.navigator.userAgent.toLowerCase(); return ua.indexOf('iphone') > -1 || ua.indexOf('ipod') > -1 || ua.indexOf('ipad') > -1 ? 'ios' : ua.indexOf('android') > -1 ? 'android' : ''; } var AppInfo = { talk: { baseUrl: 'kakaolink://sendurl?', store: { android: 'market://details?id=com.kakao.talk', ios: 'http://itunes.apple.com/app/id362057947' }, apiver: '1.0' }, story: { baseUrl: 'storylink://posting?', store: { android: 'market://details?id=com.kakao.story', ios: 'http://itunes.apple.com/app/id486244601' }, apiver: '1.0' } }; return KAKAO; } ());