ObjectInstall.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. var UniCRSInstall = function(customObj){
  2. var isInstall = {unicrs:false};
  3. // OS
  4. var OSTYPE_WIN32 = "Win32";
  5. var OSTYPE_WIN64 = "Win64";
  6. var OSTYPE_MAC = "MAC";
  7. var OSTYPE_UNKNOWN = "Unknown";
  8. var Client_OS = "Win32";
  9. if(navigator.platform == OSTYPE_WIN32) Client_OS = OSTYPE_WIN32;
  10. else if(navigator.platform == OSTYPE_WIN64) Client_OS = OSTYPE_WIN64;
  11. else if(navigator.platform == "MacIntel") Client_OS = OSTYPE_MAC;
  12. else Client_OS = OSTYPE_UNKNOWN;
  13. var unicrsVersion = "2.0.11.2";
  14. var unicrsSrc = "https://127.0.0.1:15018";
  15. var mainPageUrl = "../unisignweb_document/index.html";
  16. var chkCount = 0;
  17. var versionCheck = false;
  18. var cntAdd = 0;
  19. var sessionID = Math.random();
  20. function parseInt(s){
  21. var ver = s.replace(/\./g, "");
  22. return ver * 1;
  23. }
  24. function fnInstallOKGo(){
  25. if(isInstall.unicrs == true){
  26. setTimeout(function(){document.location.href = mainPageUrl;}, 500);
  27. }else{
  28. setTimeout(fnInstallOKGo, 1000);
  29. }
  30. }
  31. function statusMsg(txt, cnt){
  32. if(cnt) for(var i=0; i<cnt; i++) txt += ".";
  33. customObj.progress( txt );
  34. }
  35. function isUpdate(ver){
  36. var lastestVersion = unicrsVersion;
  37. var l = lastestVersion.split('.'),
  38. c = ver.split('.'), len = Math.max(l.length, c.length);
  39. for(var i=0; i<len; i++){
  40. if ((l[i] && !c[i] && parseInt(l[i]) > 0) || (parseInt(l[i]) > parseInt(c[i]))) {
  41. return true;
  42. } else if ((c[i] && !l[i] && parseInt(c[i]) > 0) || (parseInt(l[i]) < parseInt(c[i]))) {
  43. return false;
  44. }
  45. }
  46. return false;
  47. }
  48. var UniCRSChecker = function(){
  49. var isFirst = true;
  50. var fnResult2 = function(obj, r){
  51. if(obj && obj.parentNode) obj.parentNode.removeChild(obj);
  52. var fnlogic = function(){
  53. if(isFirst){
  54. //isFirst = false;
  55. if(r){
  56. statusMsg("설치된 인증서 관리프로그램 버전 확인중", chkCount);
  57. var j = document.createElement('script');
  58. var url = unicrsSrc + "/VER?" + customObj.options.callerName + ".UniCRSVersion";
  59. j.setAttribute('src', url);
  60. j.setAttribute('type', 'text/javascript');
  61. document.getElementsByTagName('body')[0].appendChild(j);
  62. }else{
  63. if(navigator.userAgent.indexOf("Firefox") > -1){
  64. customObj.fail(-99, '설치안됨', "인증서 관리 프로그램이 설치되어있지 않거나 실행중이 아닙니다<br>FireFox 브라우져일 경우 설치후 브라우져를 재시작 하셔야 합니다.");
  65. }else if (navigator.userAgent.indexOf("MSIE 7.0") > -1 && navigator.userAgent.indexOf("compatible") < 0) {
  66. customObj.fail(-98, '설치안됨', "사용중인 IE7 브라우져에서는 동작하지 않습니다. 타 브라우져 또는 IE버전을 업데이트 하시길 바랍니다.");
  67. } else {
  68. customObj.fail(-90, '설치안됨', "인증서 관리 프로그램이 설치되어있지 않거나 실행중이 아닙니다<br><br>실행하시기 바랍니다.");
  69. }
  70. setTimeout(UniCRSChecker, 1000);
  71. }
  72. }
  73. }
  74. setTimeout(fnlogic, 200);
  75. }
  76. var chkImg;
  77. if (navigator.userAgent.indexOf("MSIE 7.0") != -1) {
  78. chkImg = document.createElement("<img id='uniImg' src='"+unicrsSrc + '/CRS?cd=' + Math.random() + "' onload='fnResult2(this, true)' onerror='fnResult2(this, false)' />");
  79. chkImg.onerror = function() {fnResult2(chkImg, false);};
  80. chkImg.onload = function() {fnResult2(chkImg, true);};
  81. chkImg.style.display = "none";
  82. } else {
  83. chkImg = document.createElement('img');
  84. chkImg.setAttribute('id', "uniImg");
  85. chkImg.setAttribute('src', unicrsSrc + '/CRS?cd=' + Math.random());
  86. chkImg.onerror = function() {fnResult2(chkImg, false);};
  87. chkImg.onload = function() {fnResult2(chkImg, true);};
  88. chkImg.style.display = "none";
  89. }
  90. document.body.appendChild(chkImg);
  91. setTimeout(function(){}, 200);
  92. }
  93. UniCRSChecker();
  94. return {
  95. info:{
  96. version: unicrsVersion
  97. },
  98. UniCRSVersion : function(data){
  99. var currentVersion = data.split(":")[1];
  100. var cv = currentVersion.split('.');
  101. currentVersion = cv[0] + '.' + cv[1] + '.' + cv[2] + '.' + cv[3];
  102. if( isUpdate(currentVersion) ){
  103. customObj.fail(-80, '업데이트 필요('+currentVersion+')', "인증서 관리 프로그램이 최신버전이 아닙니다.<br>최신버전으로 설치해주시기바랍니다.<br><br>");
  104. setTimeout(UniCRSChecker, 2000);
  105. }else{
  106. isInstall.unicrs = true;
  107. customObj.success();
  108. }
  109. }
  110. }
  111. };