通过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中间件的更多相关文章

  1. 通过私有协议Chrome浏览器页面打开本地程序

    近期方有这样的要求:这两个系统,根据一组Chrome开展,根据一组IE开展,需要Chrome添加一个链接,然后进入IE该系统的开发.这,需要Chrome跳转到创建一个链接IE浏览器指定的页面.同时也实 ...

  2. C 程序与 C++ 程序之间的相互调用

    因为 C 编译器编译函数时不带参数的类型信息,只包含函数的符号名字.如 void foo( int x ) , C 编译器会将此函数编译成类似 _foo 的符号,C 链接器只要找到了调用函数的符号,就 ...

  3. DSAPI 网页获取本地程序登陆用户

    这是一个非常简单的示例,在网页或其他平台获取程序中已经登陆的用户,当然也可以是其他信息. 源码 Imports DSAPI.网络.HTTP监听_DSWebAPI Public Class Form1 ...

  4. Chrome Native Messaging 与本地程序之间的通信

    最近项目上出现了web打印不稳定的问题,师父决定web调用本地打印程序,在查阅了相关资料和加了几个相关群咨询后得知新版的chrome不支持NNAPI了,最好用Native Messaging来处理,经 ...

  5. sap 程序之间的相互调用

    1:首先进入到local object 目录下. 右键>create >function group,创建一个函数组. 右键创建类其它的东西 2:在创建的function group(fu ...

  6. PluginOK中间件高级版-支持在Chrome、Edge、Firefox等浏览器网页中真正内嵌ActiveX等控件运行的版本已获多家上市公司采购

    PluginOK(牛插)中间件(原名:本网通WebRunLocal)是一个实现WEB浏览器(Web Browser)与本地程序(Local Application)之间进行双向调用的低成本.强兼容.安 ...

  7. C#注册URL协议,使用浏览器打开本地程序,类似网页上点了QQ交谈打开本地QQ客户端程序

    本教程适用于Windows系统 从浏览器上打开本地程序,主要用到了本地URL协议,其实主要就是改注册表 先建立一个项目,我建的是控制台项目 在Program.cs写2个静态方法用来添加注册表.移除注册 ...

  8. JAVA和C/C++之间的相互调用。

    在一些Android应用的开发中,需要通过JNI和 Android NDK工具实现JAVA和C/C++之间的相互调用. Java Native Interface (JNI)标准是java平台的一部分 ...

  9. [置顶] Ajax程序:处理异步调用中的异常(使用Asp.Net Ajax内建的异常处理方法)

    无论在Window应用程序,还是Web应用程序以对用户友好的方式显示运行时的异常都是很有必要,尤其对于可能有很多不确定因素导致异常的Web应用程序;在传统的Web开发中,处理异常的方式——设计专门一个 ...

随机推荐

  1. C++中class和struct区别

    1.存储不同 结构体使用栈存储(Stack Allocation),而类使用堆存储(Heap Allocation). 栈的空间相对较小.但是存储在栈中的数据访问效率相对较高. 堆的空间相对较大.但是 ...

  2. CorelDRAW复制及镜面反转对象

    复制的设计都是由简单的图案和基础的操作堆砌而成的,如何恰当地使用这些基础操作,就是各位新学者要格外注意的地方. 这次我们介绍CorelDRAW中的复制和镜面操作. 一.复制 1.复制单个对象 使用Co ...

  3. 对数组进行排序成最小的,相当于自己实现了一次String的compareTo函数,不过是另类的。

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323. //一气呵成 ...

  4. Java基础教程——数组

    数组 Java数组:用于存储同一种数据类型的多个数据. Java数组本身是一种数据类型--引用类型. 类(String.Scanner等大写字母开头的类型)也属于引用类型,int.double等基本类 ...

  5. 技巧:如何区分dll程序集的编译目标平台(同样适用于查看程序集的其它依赖)

    我们在进行net core迁移过程中,有时候需要区分一个dll是针对netstandard平台还是net framework. 本文提供一个技巧来快速区分:通过工具dnSpy打开目标dll,按照如下截 ...

  6. 在运行tsc编译.ts文件时,“因为在此系统上禁止运行脚本” 怎么解决?

    tsc : 无法加载文件 C:\Users\Administrator\AppData\Roaming\npm\tsc.ps1,因为在此系统上禁止运行脚本.有关详细信息,请参阅 https:/go.m ...

  7. 路由器/交换机Console口登录密码丢失后如何恢复

    Console口登录密码丢失后如何恢复 如果忘记了Console口登录密码,用户可以通过以下两种方式来设置新的Console口登录密码. 通过STelnet/Telnet登录路由器/交换机设置新的Co ...

  8. Docker 指南

    一.docker 介绍 1.1 引言 环境不一致 "我本地运行没问题啊?!" 多用户相互影响 "哪个哥们又写死循环了,怎么这么卡?!" 运维成本高 " ...

  9. 冲刺随笔——Day_Eight

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 团队进行Alpha冲刺 作业正文 正文 其他参考文献 无 ...

  10. JZOJ 2020.10.6 【NOIP2017提高A组模拟9.7】陶陶摘苹果

    陶陶摘苹果 题目 Description Input Output Sample Input 10 5 110 3 100 200 150 140 129 134 167 198 200 111 0 ...