一个实现浏览器网页与本地程序之间进行双向调用的轻量级、强兼容、可扩展的插件开发平台—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开发中,处理异常的方式——设计专门一个 ...
随机推荐
- git key生成
1.打开git ssh 2.检查home目录的ssh目录是否存在,没有创建一个,mkdir ~/.ssh 3.运行命名:ssh-keygen -t rsa -C "你的邮箱", 如 ...
- docker和k8s的概念-IaaS、PaaS、SaaS 的区别
docker和k8s 参考: 什么是Docker? Kubernetes概述 openstack,docker,mesos,k8s什么关系? IaaS.PaaS.SaaS的概念 SaaS:软件服务,S ...
- maven打包时报No compiler is provided in this environment处理
系统:macOS 开发工具:Idea 问题描述:在idea中执行mvn clean install时报No compiler is provided in this environment. Perh ...
- Leetcode 周赛#200 题解
1535 找出数组游戏的赢家 #模拟+优化 题目链接 题意 给你一个由 不同 整数组成的整数数组 arr 和一个整数 k(\(1\leq k\leq1e9\)) .每回合游戏都在数组的arr[0] 和 ...
- python sklearn库实现逻辑回归的实例代码
Sklearn简介 Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression).降维(Dimensionality Red ...
- 浅谈AsyncLocal,我们应该知道的那些事儿
前言 最近查看有关框架源码,发现AsyncLocal这玩意水还挺深,于是花了一点功夫去研究,同时对比ThreadLocal说明二者区别以及在何时场景下使用AsyncLocal或ThreadLocal. ...
- 装饰模式(Decorator Pattern)
代理模式:动态地给一个对象添加一些额外的职责,它比生成子类方式更为灵活. 优点:在某些时候装饰模式比继承(inheritance)要更加灵活 装饰模式的组成 (1)抽象组件:定义一个抽象接口,来规范准 ...
- 我与PHP和git不得不说的故事(梦开始的地方,从入门到放弃记录第一章)
·关于下载 阿瑶瑶跟wampsever官网搏斗了一下午,其实我觉得教材可能在PUA我.谷歌说它给的网址安全证书过期,然后下载以断网收场.(阿瑶的第一战,以失败告终) [经过我玲姐指点,下载路径变为迅雷 ...
- DjangoForm表单组件
Form组件的介绍: 我们之前在HTML页面中利用form表单向后端提交数据时,都会写一些获取用户输入的标签并且用form标签把它们包起来. 与此同时我们在好多场景下都需要对用户的输入做校验,比如校验 ...
- Elasticsearch基本CURD操作语法讲解
当我们的ES集群搭建完成以后,我怎么能看到集群中各个节点状态以及主节点和健康情况呢,如下讲解使用curl命令来与ES集群进行交互.分别有查询主节点情况.集群状态.以及创建索引查看索引.查看分片以及对E ...