96 lines
3.1 KiB
JavaScript
96 lines
3.1 KiB
JavaScript
/*
|
|
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));
|