var com = new Object(); com.nateon = new Object(); com.nateon.talk = new Object(); var nate = {}; com.nateon = {}; com.nateon.talk = {}; /* * nateon Share Objs. * 2012.07.24 - fix android 4.0(ICS) bug * 2014.01.08 - fix android app call. iframe src TO URL protocol.(intent) * */ com.nateon.talk.NateonShare = function(title, desc, thimg, href, srclink, memo, ver, appid, appver, appname, applist) { $(document).find("body").append(""); $("#__nateonshare").hide(); this.title = encodeURIComponent(title); // required this.desc = encodeURIComponent(desc); this.thimg = encodeURIComponent(thimg); this.href = encodeURIComponent(href); this.srclink = encodeURIComponent(srclink); // required this.memo = encodeURIComponent(memo); this.ver = encodeURIComponent(ver); this.appid = encodeURIComponent(appid); this.appver = encodeURIComponent(appver); this.appname = encodeURIComponent(appname); this.applist = encodeURIComponent(JSON.NateOnStringify(applist)); //check required params. try { if (isEmptyString(this.title) || isEmptyString(this.srclink)) { throw "IllegalArgumentException"; } } catch(e) { if (e == "IllegalArgumentException") { //implement. } } }; com.nateon.talk.NateonShare.prototype.execute = function(callback) { var userAgent = navigator.userAgent.toLocaleLowerCase(); var msgParam = new com.nateon.talk.StringBuilder("link"); msgParam.append("?thimg=").append(this.thimg) .append("&title=").append(this.title) .append("&desc=").append(this.desc) .append("&href=").append(this.href) .append("&srclink=").append(this.srclink) .append("&memo=").append(this.memo) .append("&ver=").append(this.ver) .append("&appver=").append(this.appver) .append("&appid=").append(this.appid) .append("&appname=").append(this.appname); if (userAgent.search("android") > -1) { if (userAgent.search("chrome") > -1) { var callAppURL = "intent://" + msgParam.toString() + "/#Intent;scheme=nateonuc;package=Uxpp.UC;end;"; window.location = callAppURL; } else { $("#__nateonshare").attr("src","nateonuc://" + msgParam.toString()); $("#__nateonshare").load( function noapp() { window.location = "http://br.nate.com/index.php?code=A092" }); } } else if (userAgent.search("iphone") > -1) { var clickedAt = +new Date; setTimeout( function() { if (+new Date - clickedAt < 2000) { if (typeof callback == 'function') { callback.call(this); } else if (userAgent.search("iphone") > -1) { $("#__nateonshare").attr("src", "http://br.nate.com/index.php?code=A089"); } } } ,500); var callAppURL = "nateonuc://" + msgParam.toString(); $("#__nateonshare").attr("src", callAppURL); } }; /* * tiny(share url link) Objs. * */ com.nateon.talk.NateonShareTiny = function(title, href, srclink, ver, appid, appver, appname, applist) { $(document).find("body").append(""); $("#__nateonshare").hide(); this.title = encodeURIComponent(title); // require this.href = encodeURIComponent(href); this.srclink = encodeURIComponent(srclink); // require this.ver = encodeURIComponent(ver); this.appid = encodeURIComponent(appid); this.appver = encodeURIComponent(appver); this.appname = encodeURIComponent(appname); this.applist = encodeURIComponent(JSON.NateOnStringify(applist)); try { // 필수 파라메터 체크 if (isEmptyString(this.title) || isEmptyString(this.srclink)) { throw "IllegalArgumentException"; } } catch (e) { if (e == "IllegalArgumentException") { // implement. } } }; com.nateon.talk.NateonShareTiny.prototype.execute = function(callback) { var userAgent = navigator.userAgent.toLocaleLowerCase(); var msgParam = new com.nateon.talk.StringBuilder("link"); msgParam.append("?title=").append(this.title) .append("&href=").append(this.href) .append("&srclink=").append(this.srclink) .append("&ver=").append(this.ver) .append("&appid=").append(this.appid) .append("&appver=").append(this.appver) .append("&appname=").append(this.appname); if (userAgent.search("android") > -1) { if (userAgent.search("chrome") > -1) { var callAppURL = "intent://" + msgParam.toString() + "/#Intent;scheme=nateonuc;package=Uxpp.UC;end;"; window.location = callAppURL; } else { $("#__nateonshare").attr("src","nateonuc://" + msgParam.toString()); $("#__nateonshare").load( function noapp() { window.location = "http://br.nate.com/index.php?code=A092" }); } } else if (userAgent.search("iphone") > -1) { var clickedAt = +new Date; setTimeout( function() { if (+new Date - clickedAt < 2000) { if (typeof callback == 'function') { callback.call(this); } else if (userAgent.search("iphone") > -1) { $("#__nateonshare").attr("src", "http://br.nate.com/index.php?code=A089"); } } } ,500); var callAppURL = "nateonuc://" + msgParam.toString(); $("#__nateonshare").attr("src", callAppURL); } }; /* * utility functions. * */ com.nateon.talk.NateonShare.prototype.isEmptyString = function(str) { if (str.replace(/^\s*/, "").replace(/\s*$/, "").length == 0) return true; return false; }; com.nateon.talk.StringBuilder = function(value) { this.strings = new Array(""); this.append(value); }; com.nateon.talk.StringBuilder.prototype.append = function(value) { if (value) { this.strings.push(value); } return this; }; com.nateon.talk.StringBuilder.prototype.toString = function() { return this.strings.join(""); }; JSON.NateOnStringify = JSON.NateOnStringify || function(obj) { var t = typeof (obj); if (t != "object" || obj === null) { if (t == "string") obj = '"' + obj + '"'; return String(obj); } else { var n, v, json = [], arr = (obj && obj.constructor == Array); for (n in obj) { v = obj[n]; t = typeof (v); if (t == "string") v = '"' + v + '"'; else if (t == "object" && v !== null) v = JSON.NateOnStringify(v); json.push((arr ? "" : '"' + n + '":') + String(v)); } return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}"); } }; function AppList(applist) { this.applist = applist; }