QyPlugin 琼羽浏览器中间件

QyPlugin 琼羽浏览器中间件

前言

琼羽中间件,旨在实现兼容多浏览器插件通用开发变得简单便捷,通过WebSocket技术,使用浏览器js调用本地应用程序,并具备本地可视化应用界面嵌入于浏览器之中,对于用户操作更加人性化。

琼羽中间件原则上,在windows系统下支持WebSocket的游浏览器都能兼容,Chrome、Edge、360、Firefox、IE、钉钉、企业微信等。

客户端下载地址一:https://gitee.com/qy-sky/qyplugin

下载地址二: https://pan.baidu.com/s/1mWTd-kg5sSVzApLjPwNB3Q 提取码: wbav

后台访问地址:https://plugin.qy-sky.com

中间件原理

浏览器通过websocket,向中间件发送参数指令,中间件在浏览器中内嵌入本地应用程序窗口、或后台服务,使其在用户界面使用上,与IE之于ActiveX无异,来增强各浏览器功能。

中间件安装

安装步骤:

  1. 下载“琼羽中间件”安装包,解压到电脑硬盘(建议不出现中文路径,并且不会被误删除文件夹路径下);
  2. 右键“install.bat”,以管理员运行;
  3. 按提示继续安装,安装过程中如出现杀毒软件误报请,请“允许运行”;QyPlugin 琼羽浏览器中间件
  4. 安装成功后,可通过“https://plugin.qy-sky.com/wsdemo/index.html”,进行demo演示操作;
  5. 安装成功后,可通过URL Protocol启动应用程序,例:<a href="qyplugin://" >启动</a>

激活方式

通过访问登录“https://plugin.qy-sky.com”后台,即送“基础版”、“企业版”激活序列号。试用周期为30天,自激活之日算起。
基础版免费开放:文件上传下载、文件读写功能等,请求类型为“Base”基础功能。
激活步骤:
QyPlugin 琼羽浏览器中间件
QyPlugin 琼羽浏览器中间件
系统右下角,鼠标移至琼羽中间件右键打开琼羽中间件“激活工具”。
QyPlugin 琼羽浏览器中间件

在线激活

登录https://plugin.qy-sky.com,打开菜单“授权|订单➽设备授权”
QyPlugin 琼羽浏览器中间件
复制列表中“序列号”填入激活工具,并点击激活工具“联网激活”激活工具。
QyPlugin 琼羽浏览器中间件

离线激活

复制激活工具“硬件指纹”,登录https://plugin.qy-sky.com,打开菜单“授权|订单➽设备授权”
QyPlugin 琼羽浏览器中间件
点击“激活”下载“license .zip”包,并在离线激活中上传激活包即可。
QyPlugin 琼羽浏览器中间件

序列号说明

  1. 一个序列号只能激活一个PC;
  2. 测试版有效期为一个月,并在使用过程中需要不定时联网,正式版可以断网使用;
  3. 在PC硬件不损坏、不更换情况下,序列号有效。否则,序列号需要重新购买激活。

序列号替换

正式版序列号需要替换时,可以直接清空安装目录下“license”文件下内容。重新按上述所示方法激活即可。

中间件使用

视频讲解: https://haokan.baidu.com/v?vid=3670053918851074121

中间件启动

  1. 中间件安装成功后,开机会自启动;
  2. 通过URL Protocol启动客户端。如下代码:
    例:<a href="qyplugin://" >启动</a>
    QyPlugin 琼羽浏览器中间件
    建议勾选“始终允许”:
    QyPlugin 琼羽浏览器中间件

中间件设置

系统右下角,鼠标移至琼羽中间件右键打开琼羽中间件“设置”。
QyPlugin 琼羽浏览器中间件
ws端口:设置琼羽中间件客户端websocket服务端口,默认为:19002,当端口更改时保存后会重启WebSocket服务,此时,浏览器端链接中间件端口也应随其修改进行链接。

安全:该设置功能,主要为了限制非法网页无法访问中间件,默认不开启,开启后,需设置密码,密码必须以字母开头,长度在6~18之间,只能包含字母、数字和下划线。
启动密码访问后,所有请求参数必须加入password键值。

:如需批量安装中间件,可在一台电脑配置好后,复制安装目录下“qyplugin.ini”及其他文件到其他电脑安装即可。

浏览器端使用测试

中间件提供在线web测试网页:https://plugin.qy-sky.com/wsdemo/index.html
QyPlugin 琼羽浏览器中间件
输入ws地址,点击连接,链接成功,会出现“连接成功,现在你可以发送信息啦”。请确保中间件客户端安装成功。
QyPlugin 琼羽浏览器中间件

  1. ws地址

例:ws://127.0.0.1:19002/testwebsocket;

组成:”ws://”+”127.0.0.1”+”:”+”端口号”+”/”+”key值”;

只有IP为127.0.0.1方可连接琼羽中间件ws服务。端口号可通过中间件设置进行修改,ws地址修改至相应端口号即可。

key值:为链接唯一标识值,该值可自定义,该值的意义在于,有多个链接中间件时,浏览器向中间件发送参数指令时,识别区分相对应的参数指令操作。

  1. 请求方式
    浏览器与中间件之间采用WebSocket协议进行通讯,以JSON格式参数向中间件发送业务请求,中间件以JSON格式数据返回处理结果集。请求参数请使用压缩后JSON数据。
  2. 发送参数
    QyPlugin 琼羽浏览器中间件
    例:
{
   		 "reqType":"ActiveX",
   		 "retUniqueId":"23423sdrfas234q12214234asr234",
  		  "methodName":"MoveWindowAx",
  		  "methodParams":{
       		 "x":50,
      			  "y":50,
       		 "width":50,
      			  "height":40
   		 },
    	"password":"a12345"
}

上述参数:调用ActiveX插件,请求函数为 MoveWindowAx(x,y,width,height)。不同函数请求参数会有所区别,详情请看“参照说明”章节。请注意大小写。

  1. 返回参数
    QyPlugin 琼羽浏览器中间件
    例:
{
   	 "retUniqueId":"23423sdrfas234q12214234asr234",
   	 "retValue":"",
   	 "success":true
}

参数说明

基础功能说明

  1. 测试ws是否可用
    发送参数
    QyPlugin 琼羽浏览器中间件
    例:
{"reqType":"Base","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"TestWs","methodParams":{},"password" : "a12345"}

返回参数
QyPlugin 琼羽浏览器中间件
例:

{"retUniqueId":"23423sdrfas234q12214234asr234","retValue":"","success":true}
  1. 上传文件
    发送参数
    QyPlugin 琼羽浏览器中间件

例:

{"reqType":"Base","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"UploadFiles","methodParams":{"filePathNames":["C:\\ZKFingerDrv.zip","C:\\1.zip"],"uploadUrl":"http://localhost/testupload","delAfterSuccess":true,"extraParams":[{"name":"token","value":"tokenvalue"}]},"password":"a12345"}

:post方式提交

  1. 下载文件
    发送参数
    QyPlugin 琼羽浏览器中间件
    例:
{"reqType":"Base","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"DownloadFiles","methodParams":{"downloadInfos":[{"url":"http://localhost/2.zip","fileName":"1.zip"},{"url":"http://localhost/2.zip","fileName":"2.zip"},{"url":"http://localhost/2.zip","fileName":"3.zip"}],"savePath":"C:\\Users\\Samsung\\Desktop\\temp\\"},"password":"a12345"}

注:get方式下载

ActiveX动态调用

ActiveX动态调用,必须先创建ActiveX,后续参数发送方可起效。

说明:以下提供接口基本可以满足大多数ActiveX的使用,当无法满足要求时,可以通过改造ActiveX,或者二次开发ActiveX来达到调用的目的。

  1. js创建ActiveX
    发送参数
    QyPlugin 琼羽浏览器中间件
    例:
{"reqType":"ActiveX","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"CreateAx","methodParams":{"clsid":"{F1317711-6BDE-4658-ABAA-39E31D3704D3}"},"hasWin":true,"width":400,"height":380,"password" : "a12345"}
  1. 移动窗口位置
    发送参数
    QyPlugin 琼羽浏览器中间件
    例:
{"reqType":"ActiveX","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"MoveWindowAx","methodParams":{"x":50,"y":50,"width":500,"height":400},"password" : "a12345"}
  1. 居中显示ActiveX
    发送参数
    QyPlugin 琼羽浏览器中间件
    例:
{"reqType":"ActiveX","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"CenterWindowAx","methodParams":{},"password":"a12345"}
  1. 动态调用ActiveX函数
    发送参数
    QyPlugin 琼羽浏览器中间件
    例:
{"reqType":"ActiveX","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"InvokeNAx","methodParams":{"lpszName":"AboutBox","varParams":[]},"password" : "a12345"}

注:
InvokeNAx使用请参照调用ActiveX IDispatch接口的使用函数。

返回参数:
QyPlugin 琼羽浏览器中间件
例:

{"retUniqueId":"23423sdrfas234q12214234asr234","retValue":"-1","success":true}
  1. 动态调用ActiveX属性函数
    发送参数
    QyPlugin 琼羽浏览器中间件
    例:
    QyPlugin 琼羽浏览器中间件
{"reqType":"ActiveX","retUniqueId":"playlist_add","methodName":"InvokePAx","methodParams":{"propertyNames":["playlist"],"lpszName":"add","varParams":["file:///C:\\基础功能使用.avi"]},"password":"a12345"}
  1. 获取ActiveX属性值
    发送参数
    QyPlugin 琼羽浏览器中间件

例:

{"reqType":"ActiveX","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"GetPropertyByNames","methodParams":{"propertyNames":["NameS","NameL","Sex","SexL","Nation","NationL","Born","BornL","CardNo","Address","newAddress"]},"password":"a12345"}

返回参数

例:

{"retUniqueId":"23423sdrfas234q12214234asr234","retValue":{"Address":"","Born":"","BornL":"","CardNo":"","NameL":"","NameS":"","Nation":"","NationL":"","Sex":"","SexL":"","newAddress":""},"success":true}
  1. 设置ActiveX属性值
    发送参数
    QyPlugin 琼羽浏览器中间件
    例:
{"reqType":"ActiveX","retUniqueId":"23423sdrfas234q12214234asr234","methodName":"PutPropertyByNames","methodParams":{"propertyNames":[{"name":"NameS","value":"qy"}]},"password":"a12345"}

使用案例

js文件上传下载

js本地上传下载文件

js神思身份证读卡器

js调用身份证读卡器

多浏览器兼容VLC播放

js调用VLC播放多媒体

上一篇:Bytescout屏幕捕获,SDK ActiveX的主要功能


下一篇:Qt开发Activex笔记(一):环境搭建、基础开发流程和演示Demo