一个实现浏览器网页与本地程序之间进行双向调用的轻量级、强兼容、可扩展的插件开发平台—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开发中,处理异常的方式——设计专门一个 ...
随机推荐
- 01、Spring环境搭建
环境:SpringSource-Tool-3.9.9.Eclipse4.10.0 首先,我们需要解决的是Spring包的问题,我看了百度.CSDN很多都是直接一上来随便丢个包就可以安装了,搞得我弄了一 ...
- Dockerfile中如何自动回答标准输入的问题
前言大家在用docker build制作自己的image的時候,都会用RUN命令来执行一些操作来安装某些必须的软件. 而一些软件的安装过程中会需要用户来输入yes/no或者y/n来确定一些东西后才能进 ...
- No matching distribution found for Tensorflow
No matching distribution found for Tensorflow 原因:python 3.7.3 版本过高 解决:安装3.6 64位
- 应用程序-特定 权限设置并未向在应用程序容器不可用 SID (不可用)中运行的地址 LocalHost (使用 LRPC) 中的用户...的 COM 服务器应用程序的 本地 激活 权限。此安全权限可以使用组件服务管理工具进行修改。
很久以前发现我们的业务服务器上出现一个System的系统严重错误,查找很久都没有找到解决办法,今日再次查看服务器发现报错更频繁,于是就搜集各种资料进行查找解决办法,终于找到了一个解决办法. 错误截图介 ...
- jdk的切换
1.下载安装新版本的jdk 2.使用该命令,添加新版jdk alternatives --install /usr/bin/java java /opt/jdk1.8.0_144/bin/java 2 ...
- IDEA创建WebService服务端与客户端
创建服务端 一.file–>new–>project 二.点击next后输入服务端名,点击finish,生成目录如下 三.在 HelloWorld.Java 文件中右击,选 Tools 的 ...
- AWS CodePipeline部署Maven项目至EC2
背景 AWS CodePipeline 是一种持续性的集成与交付服务,可以实现快速而可靠的应用程序和基础设施更新.根据您定义的发布流程模型,只要代码发生变更,CodePipeline 便会生成.测试和 ...
- 【linux】串口通讯工具-minicom简介+简单操作
目录 前言 简介 尝试运行 配置 minicom 运行 minicom minicom 其它操作 前言 windows 上有不少的串口通信工具了,今天介绍一个linux下的一个串口通信工具-minic ...
- Java基础教程——枚举类型
枚举类型 枚举类型在JDK 5时引入. enum WeekEnum { MONDAY, TUESDAY, WEDNESDAY, THURDAY, FRIDAY, SATURDAY, SUNDAY } ...
- Kafka入门之broker-消息设计
消息设计 1.消息格式 Kafka的实现方式本质上是使用java NIO的ByteBuffer来保存消息,同时依赖文件系统提供的页缓存机制,而非依靠java的堆缓存. 2.版本变迁 0.11.0.0版 ...