一个实现浏览器网页与本地程序之间进行双向调用的轻量级、强兼容、可扩展的插件开发平台—PluginOK中间件
通过PluginOK中间件插件平台(原名本网通WebRunLocal)可实现在网页中的JavaScript脚本无障碍访问本地电脑的硬件、调用本地系统的API及相关组件,同时可彻底解决ActiveX组件在Chrome、FireFox、Opera、Edge、Safari等浏览器各版本的兼容使用问题。
系统兼容性:
1、全面兼容Windows XP、Vista、7、8、10等各版本桌面系统;
2、全面兼容Windows Server 2003、2008、2012、2016等各版本服务器系统;
3、Linux、Mac、安卓等系统理论上也是可行的,欢迎熟悉这些平台伙伴的积极参与。
浏览器兼容性:
1、IE 8及以上版本;
2、Chrome 16及以上版本;
3、FireFox 11及以上版本;
4、Safari 7及以上版本;
5、Opera 12.1及以上版本;
6、Edge 12及以上版本。
在IE中实现网页和本地系统双向调用的方法是使用ActiveX控件技术,而在Chrome、FireFox等浏览器有类似的NPAPI插件技术。因为安全隐患及稳定性等问题,微软新生代浏览器Edge不再支持ActiveX控件,目前主流的Chrome浏览器也从42版开始NPAPI插件被抛弃,导致原来很多依赖这些技术实现的业务无法在新版浏览器中继续使用。
目前浏览器网页与本地程序之间双向调用的知名解决方案有以下两个:
1、firebreath,核心实现采用的是ActiveX控件和NPAPI插件技术,已面临新版浏览器不能全面兼容使用的问题;
2、Node.js,是一个基于Chrome V8引擎的 JavaScript 运行环境,其中FFI模块可实现在JavaScript中调用本地C语言风格的动态链接库。运行及部署依赖Python和npm,另外需要区别处理32位和64位的程序调用,尤其是不能支持ActiveX控件等面向对象的组件调用。
使用PluginOK中间件的理由:
1、轻量级:PluginOK中间件整个程序包很小,不依赖其它第三方程序即可使用;
2、强兼容性:PluginOK中间件采用HTML5标准中的Web Socket技术,可确保在各个浏览器版本的兼容使用;
3、PluginOK中间件在Windows平台采用COM组件技术为上层插件开发提供友好的集成支持,支持大多数的开发语言;
4、可配置和灵活的程序分发支持,方便基于本网通的第三方集成到自己的业务系统中。
使用场景举例:
1、网页中需要和本地电脑的硬件进行交互,比如B/S架构的OA系统中操作本地打印机;
2、网页中需要调用本地程序的ActiveX控件实现一些特殊服务,比如Office文档的在线预览和编辑;
3、一些软件系统使用了第三方的DLL模块,可通过PluginOK中间件实现在B/S架构中的系统中调用;
4、网银、在线支付等安全性要求高的网站,可基于PluginOK中间件开发访问U盾等的加密模块提供访问安全性;
5、开发去中心化的分布式系统应用,如充分利用分散的系统计算能力。
项目地址:https://github.com/wangzuohuai/WebRunLocal QQ交流群:https://jq.qq.com/?_wv=1027&k=5FxgskL
一个实现浏览器网页与本地程序之间进行双向调用的轻量级、强兼容、可扩展的插件开发平台—PluginOK中间件的更多相关文章
- 通过私有协议Chrome浏览器页面打开本地程序
近期方有这样的要求:这两个系统,根据一组Chrome开展,根据一组IE开展,需要Chrome添加一个链接,然后进入IE该系统的开发.这,需要Chrome跳转到创建一个链接IE浏览器指定的页面.同时也实 ...
- C 程序与 C++ 程序之间的相互调用
因为 C 编译器编译函数时不带参数的类型信息,只包含函数的符号名字.如 void foo( int x ) , C 编译器会将此函数编译成类似 _foo 的符号,C 链接器只要找到了调用函数的符号,就 ...
- DSAPI 网页获取本地程序登陆用户
这是一个非常简单的示例,在网页或其他平台获取程序中已经登陆的用户,当然也可以是其他信息. 源码 Imports DSAPI.网络.HTTP监听_DSWebAPI Public Class Form1 ...
- Chrome Native Messaging 与本地程序之间的通信
最近项目上出现了web打印不稳定的问题,师父决定web调用本地打印程序,在查阅了相关资料和加了几个相关群咨询后得知新版的chrome不支持NNAPI了,最好用Native Messaging来处理,经 ...
- sap 程序之间的相互调用
1:首先进入到local object 目录下. 右键>create >function group,创建一个函数组. 右键创建类其它的东西 2:在创建的function group(fu ...
- PluginOK中间件高级版-支持在Chrome、Edge、Firefox等浏览器网页中真正内嵌ActiveX等控件运行的版本已获多家上市公司采购
PluginOK(牛插)中间件(原名:本网通WebRunLocal)是一个实现WEB浏览器(Web Browser)与本地程序(Local Application)之间进行双向调用的低成本.强兼容.安 ...
- C#注册URL协议,使用浏览器打开本地程序,类似网页上点了QQ交谈打开本地QQ客户端程序
本教程适用于Windows系统 从浏览器上打开本地程序,主要用到了本地URL协议,其实主要就是改注册表 先建立一个项目,我建的是控制台项目 在Program.cs写2个静态方法用来添加注册表.移除注册 ...
- JAVA和C/C++之间的相互调用。
在一些Android应用的开发中,需要通过JNI和 Android NDK工具实现JAVA和C/C++之间的相互调用. Java Native Interface (JNI)标准是java平台的一部分 ...
- [置顶] Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)
无论在Window应用程序,还是Web应用程序以对用户友好的方式显示运行时的异常都是很有必要,尤其对于可能有很多不确定因素导致异常的Web应用程序;在传统的Web开发中,处理异常的方式——设计专门一个 ...
随机推荐
- 「NOIP2009」最优贸易 题解
「NOIP2009」最优贸易 题解 题目TP门 题目描述 \(C\)国有\(n\)个大城市和\(m\)条道路,每条道路连接这\(n\)个城市中的某两个城市.任意两个城市之间最多只有一条道路直接相连.这 ...
- linux 身份鉴别口令复杂度整改
口令复杂度: 1.首先安装apt install libpam-cracklib -y2.vim /etc/pam.d/common-password3.在第2步末尾添加password requis ...
- mysql主备切换canal出现的问题解析
通过配置VIP,在进行主备切换时,出现的报错信息: 1.当主备节点当前binlog文件名称相同时,原主节点的position小于主备切换后的position,出现如下报错: 2020-07-02 15 ...
- 新建Chrome标签页,极简+自用
[跳转GitHub] chromeNewTab 已经入坑Chrome应用开发者,可以去:[应用商店地址]直接添加使用. 使用说明 下载chrome的一个[window组策略文件],解压文件后找到(\p ...
- webug第一关:很简单的一个注入
第一关:很简单的一个注入 上单引号报错 存在注入,用order by猜列的个数 union select 出现显示位 查数据库版本,用户和当前数据库名 查表名和列名 最后,激动人心的拿flag
- CURLOPT_FOLLOWLOCATION
curl爬取过程中,设置CURLOPT_FOLLOWLOCATION为true,则会跟踪爬取重定向页面,否则,不会跟踪重定向页面
- django清理migration终极解决办法
1.django生成数据表结构的过程 在我们设计好models以后,我们可以通过以下命令生成将要同步给数据库的数据结构文件 python manage.py makemigrations 生成的文件在 ...
- CleanMyMac X是如何进行Mac文件清理的
Mac系统进行文件清理,一般是直接将文件拖动入"废纸篓"回收站中,然后通过清理回收站,就完成了一次文件清理的操作,但是这么做并无法保证文件被彻底删除了,有些文件通过一些安全恢复手段 ...
- vue springboot利用easypoi实现简单导出
vue springboot利用easypoi实现简单导出 前言 一.easypoi是什么? 二.使用步骤 1.传送门 2.前端vue 3.后端springboot 3.1编写实体类(我这里是dto, ...
- 关于uniapp无法navigateTo跳转的解决办法
今天在分包时突然无法跳转了,记个笔记 场景: 位于tabbar页面(主包)的子组件跳转到分包页面时,无法跳转 尝试办法: 使用uniapp原生跳转 uni.navigateTo({ url:'xxxx ...