9 安装、升级10.1 默认未安装处理当用户的机子,没有安装JCP,此时,对JCP进行调用,会发生什么?
点击安装:
由上可见,在默认情况下,如果系统还没有安装JCP,jcp.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.version,jcp.js则将其与运行中的JCP版本号对比,如果不同,则会指示当前JCP从JCP.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会自动继续执行更新前的任务。
|