CN111638909A - 一种跨浏览器跨平台调用扫描设备的方法及电子装置 - Google Patents
一种跨浏览器跨平台调用扫描设备的方法及电子装置 Download PDFInfo
- Publication number
- CN111638909A CN111638909A CN202010430420.9A CN202010430420A CN111638909A CN 111638909 A CN111638909 A CN 111638909A CN 202010430420 A CN202010430420 A CN 202010430420A CN 111638909 A CN111638909 A CN 111638909A
- Authority
- CN
- China
- Prior art keywords
- scanning
- browser
- local service
- scanning device
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000009877 rendering Methods 0.000 claims abstract description 3
- 230000000903 blocking effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013515 script Methods 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/76—Adapting program code to run in a different environment; Porting
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Facsimiles In General (AREA)
Abstract
本发明提供一种跨浏览器跨平台调用扫描设备的方法及电子装置,该方法步骤包括:点击浏览器中js扫描应用程序的图像按钮,本地服务查找本地可用扫描设备,并将可使用扫描设备列表返回js前端;用户在浏览器中展示的可使用扫描设备列表中选取一扫描设备进行扫描,本地服务根据js前端获取的待扫描图像数据计算图像参数,并发送至扫描设备;扫描设备完成扫描工作后,扫描后的图像经本地服务传递至js前端,通过浏览器渲染,展示扫描结果。本发明无需对浏览器或平台进行适配,只需对js脚本的api进行开发,减少适配浏览器或操作***带来的额外工作,提高代码的可移植性。
Description
技术领域
本发明涉及计算机领域,具体为一种跨浏览器跨平台调用扫描设备的方法及电子装置。
背景技术
目前,存在的浏览器调用扫描仪技术,通过ie浏览器Acticex插件或通过NPAPI插件来调用扫描仪。该方法仅支持某些ie版本或仅支持某些支持NPAPI的浏览器,兼容性差。
JavaScript(简称js)是一种属于网络的脚本语言,已经被广泛用于Web应用开发。通常JavaScript脚本是通过嵌入在HTML中来实现自身的功能的。
JavaScript具有跨平台性,JavaScript脚本语言不依赖于操作***,仅需要浏览器的支持。因此一个JavaScript脚本在编写后可以带到任意机器上使用,前提上机器上的浏览器支持JavaScript脚本语言,JavaScript已被大多数的浏览器所支持。
发明内容
为了克服上述问题,本发明提供一种跨浏览器跨平台调用扫描设备的方法及电子装置,以解决当前浏览器调用扫描仪时浏览器兼容性不足的问题。
本发明采用的技术方案如下:
一种跨浏览器跨平台调用扫描设备的方法,其步骤包括:
1)点击浏览器中js扫描应用程序的图像按钮,本地服务查找本地可用扫描设备,并将可使用扫描设备列表返回js前端;
2)用户在浏览器中展示的可使用扫描设备列表中选取一扫描设备进行扫描,本地服务根据js前端获取的待扫描图像数据计算图像参数,并发送至扫描设备;
3)扫描设备完成扫描工作后,扫描后的图像经本地服务传递至js前端,通过浏览器渲染,展示扫描结果。
进一步地,通过以下步骤设置扫描设备参数配置:
1)通过扫描设备id的句柄设置打开的相应设备;
2)本地服务向js前端返回参数配置的字符串;
3)js前端读出所有可用选项并建立一个对话框。
进一步地,所述字符串为json字符串。
进一步地,所述对话框为图形或命令行选项列表。
进一步地,扫描设备的句柄模式为阻塞或非阻塞模式。
进一步地,操作***为UNIX时,扫描设备句柄设置为非阻塞模式。
进一步地,通过本地服务的restful接口,将扫描后的图像以字符串的形式传递至js前端。
进一步地,所述字符串的编码方式为BASE64编码。
进一步地,退出js扫描应用程序时,js前端通知本地服务切断与扫描设备的连接。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序执行上述方法。
一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述方法。
与现有技术相比,本发明在浏览器中调用扫描仪时,可以是相同的代码,而无需对浏览器或平台进行适配,开发人员只需要对js脚本的api进行开发。减少适配浏览器或操作***带来的额外工作。因JavaScript脚本语言具有良好的跨平台型,同时已被大量浏览器所支持,因此相同的代码能够在不同浏览器运行,因此提高代码的可移植性。
附图说明
图1产品调用时序图。
具体实施方式
为使本发明的目的、原理、技术方案和优点更加清晰明白,以下将结合具体实施例,并参照附图对本发明做详细的说明。
本发明使浏览器端不再进行与扫描仪本地api的交互,而是将交互放在底层,通过本地应用与扫描仪的各个通用接***互,将api通过本地restful服务(restful api风格的web服务)的方式发布,在浏览器中通过调用本地服务的方式达到高兼容性,跨浏览器跨平台调用扫描仪的目的。
该时序图描述用户调用扫描仪时的普遍场景。用户在浏览器中点击浏览器页面中的扫描图像按钮,此时执行js方法。在js方法内部异步请求本地发布的本地服务。在本地服务内部,是本地服务底层调用扫描仪相关API,从而达到在浏览器中调用扫描仪的目的。
然后通过API将操作结果反馈至本地服务,通过restful接口(RepresentationalState Transfer),restful内部处理的结果会通过异步请求返回至JavaScript,再由JavaScript将结果渲染至浏览器。用户最终获取到扫描仪的反馈。
下面以一具体应用详细说明本发明。
该用户为局域网中的任一平台的任一用户,使用本方法的步骤包括:
1)用户点击浏览器中js扫描应用程序的图像按钮,前端js调用init()调用本地服务,执行本地服务saneAPI初始化;
2)本地服务首先执行sane_init(),再使用函数sane_get_devices()查找本地可用设备列表;
3)若有可正常使用的扫描设备,前端js调用devices()获取本地的扫描设备硬件列表,并将扫描设备列表信息展现至浏览器中;如无扫描仪或设备异常则无法使用本产品,在浏览器中展示相关信息;
3)用户选中其中一或多种扫描设备,后端服务调用sane_open()建立到特定设备的连接;
4)用户查看列表中各扫描设备的参数配置时,js前端调用parameters,传入扫描设备id,本地服务使用功能sane_get_option_descriptor()和sane_control_option()通过相应设备id的句柄设置打开的设备id,向js前端返回是参数配置的json字符串;
设置设备包括js前端在开始时读出所有可用选项,然后建立一个对话框(图形或命令行选项列表),以控制可用选项。应当注意,对于给定的句柄,选项的数量是固定的。但是,随着选项的设置,其他选项可能会变为活动或非活动状态。因此,在设置选项之后,可能需要重新读取一些或所有选项描述符;
通过调用sane_set_io_mode()可以将设备句柄置于阻塞或非阻塞模式。要求设备支持阻止模式(这是默认模式),但是对于诸如UNIX之类的操作***,强烈建议支持非阻止I/O;
此外,还可调用方法sane_get_parameters()以获取扫描仪图像参数。
5)用户选择一种扫描设备后,点击扫描按钮,js前端重复调用read,获取待扫描图像数据;
6)本地服务通过调用sane_start()来启动图像数据获取,并计算出确切的图像参数,重复调用sane_read()来收集待扫描图像数据;收集结束后,向js前端返回收集文件结束状态(SANE_STATUS_EOF);
若还有其它待扫描图像数据,可以再次调用sane_start(),重复上述步骤;
当所有待扫描图像数据收集完毕后,调用函数sane_cancel();需要说明的是,在待扫描图像数据收集过程中,前端可随时调用函数sane_cancel(),中断待扫描数据收集;
7)扫描设备完成扫描工作后,扫描后的图像以BASE64编码为字符串传递至js前端,通过浏览器渲染,以展示扫描结果;本地服务调用通过调用sane_close()关闭扫描设备的句柄;
8)用户退出js扫描应用程序时,js前端通知本地服务切断与扫描设备的连接;本地服务调用函数sane_exit(),以防某些资源(例如临时文件或锁)无人认领。
以上所述实施例仅为更好的说明本发明的目的、原理、技术方案和有益效果。所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种跨浏览器跨平台调用扫描设备的方法,其步骤包括:
1)点击浏览器中js扫描应用程序的图像按钮,本地服务查找本地可用扫描设备,并将可用扫描设备列表返回js前端;
2)用户在浏览器中展示的可用扫描设备列表中选取一扫描设备进行扫描,本地服务根据js前端获取的待扫描图像数据计算图像参数,并发送至扫描设备;
3)扫描设备完成扫描工作后,扫描后的图像经本地服务传递至js前端,通过浏览器渲染,展示扫描结果。
2.如权利要求1所述的方法,其特征在于,通过以下步骤设置扫描设备参数配置:
1)通过扫描设备id的句柄设置打开的相应设备;
2)本地服务向js前端返回参数配置的json字符串;
3)js前端读出所有可用选项并建立一个对话框。
3.如权利要求2所述的方法,其特征在于,所述对话框为图形或命令行选项列表。
4.如权利要求2所述的方法,其特征在于,扫描设备的句柄模式为阻塞或非阻塞模式。
5.如权利要求4所述的方法,其特征在于,操作***为UNIX时,扫描设备句柄设置为非阻塞模式。
6.如权利要求1所述的方法,其特征在于,通过本地服务的restful接口,将扫描后的图像以字符串的形式传递至js前端。
7.如权利要求6所述的方法,其特征在于,所述字符串的编码方式为BASE64编码。
8.如权利要求1所述的方法,其特征在于,退出js扫描应用程序时,js前端通知本地服务切断与扫描设备的连接。
9.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序执行上述权利要求1-8中任一方法。
10.一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述权利要求1-8中任一方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010430420.9A CN111638909A (zh) | 2020-05-20 | 2020-05-20 | 一种跨浏览器跨平台调用扫描设备的方法及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010430420.9A CN111638909A (zh) | 2020-05-20 | 2020-05-20 | 一种跨浏览器跨平台调用扫描设备的方法及电子装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111638909A true CN111638909A (zh) | 2020-09-08 |
Family
ID=72329661
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010430420.9A Pending CN111638909A (zh) | 2020-05-20 | 2020-05-20 | 一种跨浏览器跨平台调用扫描设备的方法及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111638909A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112399025A (zh) * | 2020-11-20 | 2021-02-23 | 深圳市远行科技股份有限公司 | 扫描设备通信方法及装置 |
CN112486395A (zh) * | 2020-12-18 | 2021-03-12 | 珠海奔图电子有限公司 | 基于国产操作***显示扫描设备信息的方法、装置及*** |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015033333A1 (en) * | 2013-09-09 | 2015-03-12 | N-Sip Ltd | Communication channel between plugin application and browser script |
CN106790276A (zh) * | 2017-02-20 | 2017-05-31 | 山东威尔数据股份有限公司 | 一种基于浏览器协议的跨浏览器数据交互方法和装置 |
CN109800021A (zh) * | 2018-12-29 | 2019-05-24 | 浙江工商大学 | 可通过任意浏览器驱动本地硬件设备的方法、***及装置 |
CN109815115A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 调试桥接口的方法及装置、计算机设备、存储介质 |
CN110109850A (zh) * | 2019-05-21 | 2019-08-09 | 珠海奔图电子有限公司 | 基于sane协议框架下扫描设备的搜索方法及装置 |
CN110457145A (zh) * | 2019-08-19 | 2019-11-15 | 四川久远银海软件股份有限公司 | 一种跨平台的浏览器外设调用方法 |
-
2020
- 2020-05-20 CN CN202010430420.9A patent/CN111638909A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015033333A1 (en) * | 2013-09-09 | 2015-03-12 | N-Sip Ltd | Communication channel between plugin application and browser script |
CN106790276A (zh) * | 2017-02-20 | 2017-05-31 | 山东威尔数据股份有限公司 | 一种基于浏览器协议的跨浏览器数据交互方法和装置 |
CN109815115A (zh) * | 2018-12-14 | 2019-05-28 | 深圳壹账通智能科技有限公司 | 调试桥接口的方法及装置、计算机设备、存储介质 |
CN109800021A (zh) * | 2018-12-29 | 2019-05-24 | 浙江工商大学 | 可通过任意浏览器驱动本地硬件设备的方法、***及装置 |
CN110109850A (zh) * | 2019-05-21 | 2019-08-09 | 珠海奔图电子有限公司 | 基于sane协议框架下扫描设备的搜索方法及装置 |
CN110457145A (zh) * | 2019-08-19 | 2019-11-15 | 四川久远银海软件股份有限公司 | 一种跨平台的浏览器外设调用方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112399025A (zh) * | 2020-11-20 | 2021-02-23 | 深圳市远行科技股份有限公司 | 扫描设备通信方法及装置 |
CN112399025B (zh) * | 2020-11-20 | 2023-03-07 | 深圳市远行科技股份有限公司 | 扫描设备通信方法及装置 |
CN112486395A (zh) * | 2020-12-18 | 2021-03-12 | 珠海奔图电子有限公司 | 基于国产操作***显示扫描设备信息的方法、装置及*** |
CN112486395B (zh) * | 2020-12-18 | 2022-05-31 | 珠海奔图电子有限公司 | 基于国产操作***显示扫描设备信息的方法、装置及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6724399B1 (en) | Methods and apparatus for enabling keyboard accelerators in applications implemented via a browser | |
JP3753244B2 (ja) | リアルタイムウェブ共有システム | |
US6405367B1 (en) | Apparatus and method for increasing the performance of Java programs running on a server | |
US6728960B1 (en) | Techniques for managing multiple threads in a browser environment | |
US7051288B2 (en) | Method, system, and product for a java-based desktop to provide window manager services on UNIX | |
EP1449345B1 (en) | Servicing requests that are issued in a protocol other than the protocol expected by the service | |
JP3280330B2 (ja) | 通信方法、クライアント端末、サーバ、通信システム、通信を制御するためのソフトウエア・プロダクトを格納した記録媒体 | |
KR100265142B1 (ko) | 관련된웹페이지와동시에도움말윈도우를디스플레이하기위한방법및장치 | |
US20030112271A1 (en) | Method of controlling a browser session | |
EP2129148A1 (en) | Content distribution management device, terminal, program, and content distribution system | |
GB2366418A (en) | Browser collaboration system | |
CN110928767A (zh) | 网页分析方法、装置、设备及存储介质 | |
US20110083067A1 (en) | Web browsing environment provider system for multiple users and control method thereof | |
CN111638909A (zh) | 一种跨浏览器跨平台调用扫描设备的方法及电子装置 | |
WO1998014896A1 (en) | Web server data/process integrator | |
CN113778583A (zh) | 一种云桌面的本地应用的发布方法、装置、设备和介质 | |
CN110633443A (zh) | 一种页内数据通信的方法、装置、设备和介质 | |
US20040221002A1 (en) | Mechanism for implementing server-side pluglets | |
CN113220296B (zh) | 安卓***交互方法及装置 | |
CN113127250B (zh) | 一种故障上报方法、装置、电子设备及存储介质 | |
KR100422679B1 (ko) | 혼합 컨텐츠 서버-클라이언트 시스템 | |
CN112491974A (zh) | 远程浏览方法、装置、存储介质、终端设备及服务器 | |
JPH10254907A (ja) | 情報提供システム、情報提供方法、情報処理装置、および、情報処理方法 | |
CN113274736A (zh) | 云游戏资源调度方法、装置、设备及存储介质 | |
CN112347382A (zh) | 产品页面分享方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |