0.1.3 • Published 3 years ago

snk-browser-helper-print v0.1.3

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

snk-browser-helper-web

打印助手: 浏览器用PDF.JS展示PDF,当直接打印时,针式打印机清晰度不足,需要插件进行辅助,此为浏览器与插件进行交互的前端项目 方案是通过打印助手打印word文档,针式打印机打印PDF都不理想

相关文件

// 功能入口文件
src/browserHelper/index.js

// 共用流程主文件
src/browserHelper/dialog.js

// 提示文件 其中包含安装引导提示
src/browserHelper/message.js


// 打印主文件 其中包含安装引导提示
src/browserHelper/ajax-printer.js

建立http链接 以及 唤起java打印助手应用

通过轮询握手的机制去检测唤起本地应用,并展示相关安装指引

采用的是 https 建立和本地webservice

1.1 用户没有安装助手应用

第一次创建http连接,失败,第二次创建http连接,并且通过URL protocol尝试唤起助手。因为没有安装助手,所以直到最大的轮询次数也不会成功,所以弹出页面提示让用户下载助手应用进行安装并重试

1.2 用户已经安装助手应用 但是助手没有运行

第一次创建http连接,失败,第二次创建http连接,并且通过URL protocol尝试唤起助手。第一种情况助手在若干秒被唤起,后续并成功建立连接,则不再进行尝试http连接,正常进入逻辑。第二种情况助手没有被正常唤起,可能原因如下:

  • 1.安装的时候写入URL protocol 注册表失败
  • 2.IE浏览器安全机制限制

在第二种情况没有被唤醒,则也会在web界面弹出UI提示,提示如果用户有安装助手插件,让用户手动点击运行,并重试。在用户安装过程中如果被杀毒软件阻止了,需要允许相关操作。不然会导致URL protocol注册表写入失败。

1.3 用户已经安装助手应用 但是助手正在运行

一般在第一次创建http连接就会成功,这就是为什么第二次尝试才去唤起app的原因,这样可以提升用户体验,第一次建立成功,就不再去唤起app 也不会在web显示浏览器的是否打开URL protocol的提示。

1.4 唤起JAVA插件

在助手安装过成中 会写入URL protocol, 代码通过

`haprinthandler://?port=${port}&action=${action}&env=${env}&wss=${wss === 'true'?'true':'false'}`;

haprinthandler就是约定的URL protocol名称

1.5 成功后实例化具体业务

当建立好了http便根据调用参数,去实例化上传助手。

1.6 文件 message.js

这个文件主要用于安装指引提示,公用部分的错误指引提示。也包括了一些文件下载链接,修复文件的下载链接。

  • this.dowloadURL

    助手的下载链接

  • this.VCPlusPlusURL

    C#执行环境还会依赖vc++ vc_redist.x86 2015以上的版本,如果报相关错,则会提示用户下载修复。

相关文件

// 功能入口文件
src/browserHelper/index.js

// 共用流程主文件
src/browserHelper/dialog.js

## 上传助手

打包发布

1、script 引入

npm run build

会在dist目录下生成一个snkwebbrowserhelper.js 文件,相关项目引入该文件即可

2、import 引入

npm run buildlib npm publish npm install snk-browser-helper-print ===》 import

调用

 // 调用
 import SNKBrowserHelper from 'SNKBrowserHelper';
SNKBrowserHelper.callAjaxPrint({
      env: 'pro', // 此参数暂时未启用
      wss: 'false',
      // 下载插件的域名地址 hostUrl + '/x86/printHandler.exe' 或 hostUrl + '/x64/printHandler.exe'
      hostUrl: `${Common.host}/res/api/anysign-web/print/exe/`,
      initParams: { urlData: newData, index: Common.curentFileIndex }, // 初始化打印的word文档链接
      ok: ({ result }) => {
        console.log(result);
      },
});

项目结构

BROWSER-HELPER-WEB
|   package.json
|   readme.MD
|   server.js                               项目启动脚本,包含一些取未占用端口逻辑,并启动webpack-dev-server
|   webpack.config.js                       webpack配置文件
|   
+---dist                                    打包文件
|       browserHelper.html
|       browserHelper.js
|       snkwebbrowserhelper.js              需要被引入项目的代码
|       
\---src
    |   
    +---browserHelper
    |   |   commonLayout.js                 公用界面
    |   |   index.js                        声明了调用方法的入口文件
    |   |   index.less
    |   |   message.js                      安装指引提示,安装错误提示
    |   |   protocolcheck.js                通过URL protocol唤起app的兼容性类
    |   |   
    |           
    +---components
    |   +---dom
    |   |       index.js                    基础的dom操作
    |   |       
    |   +---popview                         弹出框
    |   |       confirm.js
    |   |       index.js
    |   |       index.less
    |   |       
    |   +---slide                           图片预览滑动组件
    |   |   |   index.js
    |   |   |   index.less
    |   |   |   util.js
    |   |   |   
    |   |   +---item
    |   |   |       imageItem.js
    |   |   |       index.js
    |   |   |       notSupportItem.js
    |   |   |       pdfItem.js
    |   |   |       videoItem.js
    |   |   |       
    |   |   \---thumbBar
    |   |           index.js
    |   |           thumbItem.js
    |   |           
    |   \---tree                            左侧树状组件
    |       |   index.js
    |       |   index.less
    |       |   popTree.js
    |       |   tree.js
    |       |   
    |       \---components
    |           |   treeItem.js
    |           |   treeSection.js
    |           |   
    |           \---popover
    |                   index.js
    |                   index.less
    |                   
    \---entry                               当前项目的启动入口 
        \---browserHelper
                index.html
                index.js
                index.less
0.1.0

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.0.9

3 years ago

0.1.3

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago