9       安装、升级

10.1     默认未安装处理

当用户的机子,没有安装JCP,此时,对JCP进行调用,会发生什么?

 

点击安装:

 

由上可见,在默认情况下,如果系统还没有安装JCPjcp.js会提示用户,"杰表云打印(JCP)未安装, 请下载安装之.",用户点击确认后,会自动从

http://print.jatools.com/jcp/setup.exe 下载安装包,用户在下载安装后,就不再提示。

 

提示内容及下载地址,被设置在 jcp.js的开始部分,如下所示:

 

你可以修改 JCP.setup.download属性,指定你自己的下载地址,修改JCP.setup.noSetupMessage属性,指定你自己的提示内容。

 

提示:

1.  只有对JCP进行调用时,jcp.js才会去检测是否安装JCP,不调用不检测。

2.  如果你想在页面加载完成时,就检测,那么,请调用一个轻量级的方法,比如 getVersion方法就行了:

1.  <script>  

2.      function checkJCP() {  

3.          getJCP().getVersion(function(result) {  

4.          })  

5.      }  

6.  </script>  

7.  </head>  

8.  <body onload="checkJCP()">  

9.  ...  

3.  安装完成后,不需要重新启动操作系统,不需要重新启动浏览器,也不需要刷新页面,JCP会自动继续执行安装前的任务。

 

10.2     自定义未安装处理

自定义未安装提示

如果你想更进一步,自定义未安装处理,这时,你可以使用未安装回调功能:

1.  <script type="text/javascript" src="jcp.js"></script>  

2.  <script>  

3.      var JCP = {  

4.          setup : {  

5.              noSetupHandle : function() {  

6.                  alert("no setup!");  

7.              }  

8.          }  

9.      };  

10.     function checkJCP() {  

11.         getJCP().getVersion(function(result) {  

12.             alert("已安装!");  

13.         })  

14.   

15.     }  

16. </script>  

17. </head>  

18. <body onload="checkJCP()">  

19. ...  

如上所示, jcp.js中定义的全局变量JCP,已经被内嵌的js代码所覆盖,新的JCP变量所指对象的 noSetupHandle属性上,定义一个回调,当jcp.js检测到未安装时,会调用这个函数,你可以在此进行未安装处理,比如提示用户未安装,下载等。

 

提示:

你也可以在jcp.js中直接修改 JCP全局变量,而不必采用全局变量重定义方法。

 

10.3     自动更新

自动更新

当有版本更新时,怎么让用户自动安装新版本?

 

你只需要设置 JCP.setup.version JCP.setup.download即可:

1.  <script type="text/javascript" src="jcp.js"></script>  

2.  <script>  

3.      var JCP = {  

4.          setup : {  

5.              download : "http://print.jatools.com/jcp/2/setup.exe",  

6.              noSetupMessage : "杰表云打印(JCP)未安装请下载安装之.",  

7.              version : '10.0.5663'  

8.          }  

9.      }  

10.     function doPrint() {  

11.         var myDoc = {  

12.             documents : document,  

13.             copyrights : '杰创软件拥有版权  www.jatools.com'  

14.         };  

15.         getJCP().printPreview(myDoc, true);  

16.     }  

17. </script>  

18. ...  

19. <div id='page1'>第一页(div#page1)</div>  

20. <div id='page2'>第二页(div#page2)</div>  

21. ...  

 

如前所述,当调用JCP任何方法时,如getJCP().print(myDoc,true)jcp.js会检测JCP是否运行中,如果没运行(没安装或者已退出),则提示安装,并从JCP.setup.download 指出的位置,自动下载;

 

如果JCP运行中,且设置了 JCP.setup.versionjcp.js则将其与运行中的JCP版本号对比,如果不同,则会指示当前JCPJCP.setup.download 下载更新。

 

因此,每次你拿到新版本,只需要将 setup.exe,上传到 JCP.setup.download 位置,并把新版本号,设置到 JCP.setup.version,就可以实现自动更新了。

 

提示:

1.  自动更新,只发生在JCP 调用时,不调用,不更新;

2.  如果你想在页面加载完成时,就检测,那么,请调用一个轻量级的方法,比如 getVersion方法就行了:

1.  <script>    

2.      ...  

3.      function checkJCP() {    

4.          getJCP().getVersion(function(result) {    

5.          })    

6.      }    

7.  </script>    

8.  </head>    

9.  <body onload="checkJCP()">    

10. ...    

3.  为方便维护,你可以将 JCP 变量定义,放在一个单独的 js文件中,并引用之,以后有新版本,只需要改这个文件即可。

4.  更新完成后,不需要重新启动操作系统,不需要重新启动浏览器,也不需要刷新页面,JCP会自动继续执行更新前的任务。