用 Chrome,Edge,360 等浏览器如何调用底层硬件模块?
通常情况下,各种标准浏览器无法调用底层硬件外设模块,如指纹仪,身份证读卡器等;需要软件厂商开发 Chrome 扩展,或者相关插件,这种开发工作门槛较高,维护这样一个开发团队成本也高,不划算。力麒集团的“政务浏览器”产品提供了一个简洁易用的方案。政务浏览器启动后,可以以“中间件”模式运行;该模式下浏览器在后台运行,将硬件模块的接口暴露成 Http 调用,也可以将模块调用以悬浮的工具栏呈现。具体设置及调用方法如下。
1、设置政务浏览器的运行模式为“中间件模式”如下图,打开菜单“常用设置”,将运行模式设置为“中间件模式”,设置后,浏览器重启生效。
中间件模式的浏览器启动后,最小化到系统托盘,可以打开设置界面进行设置。可以将各类插件工作以悬浮工具栏的模式呈现,如下图。
2、开启接口 http 服务,设置白名单从右上角系统菜单,打开“管控中心”,确保 http server 已开启;确保应用的地址已经加入到白名单。如下图。
3、在 webapp 中引入政务浏览器的 jssdk,并初始化 web 应用调用政务浏览器封装的外设模块,只要引入jssdk即可;该 Js SDK 有如下优点。
1)、随着浏览器的升级 jssdk 不用升级;2)、不管是页面在 Chrome 运行,然后通过 http 协议调用外设,还是页面在“政务浏览器”里运行调用外设,接口完全一样,web 应用不用做任何修改。
3、在 webapp 中读取身份证以身份证读取为例,政务浏览器是以插件形式增加各功能,所以要调用该功能,先通过浏览器的“扩展插件”管理界面安装该插件,如下图。Windows 下所有插件免费,信创环境下每个政务工具插件 License99 元。
每个插件有自己固定的 appName,身份证插件的 appName 是“IDCardReader”。调用身份证读卡器的代码如下。
更多调用说明见“身份证插件调用demo”
4、注意事项通过 http 调用外设,涉及到“跨域”问题。Chrome 浏览器和 Edge 浏览器均对跨域请求有严格限制,要求业务系统采用 ssl 协议(即 https)才允许调用发布在 localhost:52689 的 API 。 如果应用无法没有安装 ssl 证书,请用“政务浏览器”访问应用,不要采用第三方浏览器。
更多 demo 见“政务浏览器Demo V1.0"
版权声明: 本文为 InfoQ 作者【非也】的原创文章。
原文链接:【http://xie.infoq.cn/article/e221ef64938a7c2d5f81f5dde】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论