IETabApplet.txt 10.3 KB
Newer Older
W
wangzuohuai 已提交
1
IE标签页小程序:基于跨浏览器的小程序系统-PluginOK(牛插)中间件( https://github.com/wangzuohuai/WebRunLocal )单机高级版开发,底层调用IE内核的ActiveX控件实现可程序化驱动的双内核浏览器。最低可用在Chrome 41、Firefox 50、Edge 80(Chromium内核)、360极速/安全、IE、Oprea 36、QQ等浏览器,也兼容运行于这些浏览器的最新版本。
2 3 4 5 6 7 8

1、PluginOK(牛插)中间件的安装:
1)、如果是exe的安装程序,请直接运行安装;
2)、如果是绿色版的程序包,请解压到磁盘某个目录后,双击“InstallWrl.bat”进行安装;
3)、安装完成时会启动PluginOK中间件服务,在安装目录下的Data子目录有WrlService.txt日志文件输出运行情况。

2、IE标签页小程序控制相关接口:
W
wangzuohuai 已提交
9
说明:以下功能请通过Web Socket连接PluginOK主服务(ws://localhost:80?sid=12345&flag=1)后可执行,如默认侦听端口不是80(关于如何配置侦听端口,请参考SDK包中的文档“PluginOK开发者手册.doc”),请在连接地址中指定端口号进行连接。
10 11 12 13 14 15 16 17 18 19
HTTP网页在线测试:http://zorrosoft.com/ienewtab.html  HTTPS网页在线测试:https://zorrosoft.com/ienewtab.html

1)、请求启动IE标签页小程序:
Type为浏览器类型,传0自动判断(前提是当前浏览器已启动并显示在最前端,Flag指定当前页加载时必须是0) 可强制指定浏览器类型Type(2代表Chrome 4代表Firefox 8代表Opera 16代表Edge(Chromium内核) 32代表360极速浏览器 33代表360安全浏览器 34代表360企业安全浏览器 50代表QQ浏览器 60代表搜狗浏览器)
Flag掩码标记:1指定标签页加载(1和16都不指定时为当前页加载) 2小程序显示窗口边框  64根据标题避免重复加载相同的小程序
Title:标签页页时为创建的网页标题
Version 指定加载的IE版本,0不指定,比如9999是IE9标准模式 8888是IE8标准模式 8000是IE8兼容模式 7000是IE7 详细定义参考:https://docs.microsoft.com/en-us/previous-versions/windows/internet-explorer/ie-developer/general-info/ee330730(v=vs.85)?redirectedfrom=MSDN#browser_emulation
X64:是否启动64位版
Url:加载小程序所在的网页地址
Open:为需要用IE内核打开的Url实际地址或本地网页地址
20
注意:Open和Url如果有特殊字符= & 双引号或中文等,需要用URL编码处理后传递
21 22 23

举例:
自动识别当前浏览器启动:
W
wangzuohuai 已提交
24
{"req":"Wrl_IETab","rid":6,"para":{"Type":"0","Flag":0,"Title":"IE Tab","Version":"0","X64":"0","Open":"http://xiuxiu.web.meitu.com/main.html"}}
25 26 27 28

浏览器当前页面启动演示
http://zorrosoft.com/IENewTab.html

W
wangzuohuai 已提交
29
启动后会先后收到三个JSON数据包
30
A、{"ret":0,"rid":1,"data":{"ID":1}}
W
wangzuohuai 已提交
31
代表小程序WS侦听服务就绪
W
wangzuohuai 已提交
32
B、{"event":"Wrl_Listen","aid":1,"data":{"SID":"123","PID":"IENewTab","port":980}}
33
返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。
W
wangzuohuai 已提交
34
返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl命令。
W
wangzuohuai 已提交
35
C、{"event":"Wrl_AppletOK","aid":1,"data":{"SID":"123","PID":"IENewTab","Port":980}}
36 37 38 39 40 41 42 43

2)、请求控制IE标签页小程序:
当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等
ID为Wrl_IETab启动小程序时返回的ID值,Code代表控制类型掩码:1关闭 2全屏显示 4自动隐藏 8还原显示。其中全屏显示2,可直接通过热键ESC或取消,4隐藏后可通过8恢复显示
{"req":"Wrl_AppletControl","rid":2,"para":{"ID":"1","Code":4}}

3、小程序安装、升级、卸载
1)、请求安装IE标签页小程序
W
wangzuohuai 已提交
44
请在测试网页输入框中,输入如下请求,然后点击发送,完成安装:
45

W
wangzuohuai 已提交
46
{"req":"Plugin_Install","rid":1,"para":{"Name":"IE标签页小程序","PID":"IENewTab","Date":"2021-05-06","Desc":"PluginOK之上跨浏览器的IE标签页内嵌小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌使用","DownAddr":"http://local.zorrosoft.com/Files/Plugin/IENewTab.pid","MD5":"4FBE94D5CFF07AAC033667ECB0674496","Version":"1.3.3.2","Size":753664,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"07CB50B2FE7B66B7D53B3E319ECD9E409527466FF338D187B76CA5DE6BE8F254955C127BDB0419C31280C0E061C10CDC1FBBEBCC0023A83A3319EFC7D3070D32FBE108164A9BCA345B9AA5BB41961F1CEF5E0C482E7DD0154FB5453694C65F4B8C259F10540EF2E82FEFCAC5BF15ABB86F2998CC15993C5465DAC91FC51DF8CD6E3779F3D6B1FBB877936CCCC71670E8752CFF6E260635CE617B05A96A161C0828427C6DBD24A5C0F587A123722F3C84252E466F22BD9B6290C580ED5765587AC71C8BA719495FB1CE9B12A67580D002EFCC9A10799E33C82FAF1BCA38EB9A2BB0A431301F70CB4153ECF7C346D9CDBFB3DD89BC5F0712F5EA56D1ACEAC8B0B0"}}
47 48 49 50 51

启动安装后,会不断收到安装进度直到安装结束。

2)、请求升级IE标签页小程序:

W
wangzuohuai 已提交
52
{"req":"Plugin_Update","rid":1,"para":{"Name":"IE标签页小程序","PID":"IENewTab","Date":"2021-05-06","Desc":"PluginOK之上跨浏览器的IE标签页内嵌小程序,支持在Chrome、Edge、Firefox、IE、Oprea、360、QQ等最新版本浏览器网页中内嵌使用","DownAddr":"http://local.zorrosoft.com/Files/Plugin/IENewTab_Update.pid","MD5":"D9F9169AA8CE97C92B7AEF1CB42AB7E1","Version":"1.3.3.2","Size":753664,"HideIns":0,"Type":8,"Cookie":"","Auth":"","TK":"A122CCCF05AC07107DEDA9E01D65754B0461697B7B86FD7705CFC4696798C27C0E19E8D7C63DEB5A474FD693B21E98DEEFF0A13456959DA1CD3B9C6AD7B3D38DEE8DFB3B450A0506F49BA149D21DF09957A1BED57C88A6D7B6E039EE39929A09464E093B4F77432841162A7D7114232D1B04328044BCCC25057D1471A8927DF422A088261D6205AEA2651BDF51DF69D75E8B8B7DF28A6840BD9AA97FCB7415656E4690972AB5DE7B0F25071E6415F448919B4E7080642A91F5F8BE31FF6B119F028D1FD953576CE419BB04ED7479CD2315AA5B9BEB4F3AB54527091A43BCC7D1D8E4F75075A1EAE23F04244E9EAFC5894DE5CE76A92EDE3FC32ED2F261B4ACF1"}}
53 54 55 56 57

以上安装和升级的JSON请求包,可能因版本升级导致内容不同,如遇安装或升级时报错,请联系客服获取最新的请求包。 

3)、请求卸载IE标签页小程序:

W
wangzuohuai 已提交
58
{"req":"Plugin_Remove","rid":3,"para":{"PID":"IENewTab","Type":8}}
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88

4、IE标签页小程序转调用ActiveX接口,先根据Wrl_IETab请求启动后返回的端口号,新建立一个WebSocket连接后可执行如下指令:
A、常用功能请求:
1) 停止
请求:{"req":"IE_Stop","rid":50,"para":{}}
返回:{"ret":0,"rid":50,"data":{"Ret":"0"}}
ret为请求返回值,0正常,非零不正常,不正常时请取和ret同级的错误描述err,下同
Ret为调用ActiveX对应函数返回值,0代表正常

2) 刷新网页
请求:{"req":"IE_Refresh","rid":51,"para":{"Loop":"1"}}
返回:{"ret":0,"rid":51,"data":{"Ret":"0"}}
Ret为调用ActiveX对应函数返回值,0代表正常

3) 回退
请求:{"req":"IE_GoBack","rid":52,"para":{}}
返回:{"ret":0,"rid":52,"data":{"Ret":"0"}}
Ret为调用ActiveX对应函数返回值,0代表正常

4) 前进
请求:{"req":"IE_GoForward","rid":53,"para":{}}
返回:{"ret":0,"rid":53,"data":{"Ret":"0"}}
Ret为调用ActiveX对应函数返回值,0代表正常

5) 导航到主页
请求:{"req":"IE_GoHome","rid":54,"para":{}}
返回:{"ret":0,"rid":54,"data":{"Ret":"0"}}
Ret为调用ActiveX对应函数返回值,0代表正常

6) 导航到指定网页
W
wangzuohuai 已提交
89
Url为网页地址,需进行URLCode编码,如额外指定Type为0或具体的浏览器类型,代表用非IE浏览器新标签页来打开
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
请求:{"req":"IE_Navigate","rid":55,"para":{"Url":"http://www.baidu.com"}}
返回:{"ret":0,"rid":55,"data":{"Ret":"0"}}
Ret为调用ActiveX对应函数返回值,0代表正常

7) 请求执行脚本,必须等文档加载完成后
Code为需要执行的脚本内容
Language 脚本类型
请求:{"req":"IE_ExecScript","rid":56,"para":{"Code":"alert(\"hello\");","Language":"javascript"}}
返回:{"ret":0,"rid":56,"data":{"Ret":"0","ScriptRet":""}}
Ret为调用返回值,0代表正常
ScriptRet执行脚本返回内容,只支持字符型,非字符型先用BASE64编码

8) 请求注入脚本,必须等文档加载完成后
Code为需要注入的脚本内容
请求:{"req":"IE_AddScript","rid":57,"para":{"Code":"alert(\"hello\");"}}
返回:{"ret":0,"rid":57,"data":{"Ret":"0"}}
Ret为调用返回值,0代表正常

9) 请求调用脚本(已在打开的网页中),必须等文档加载完成后
FuncName脚本函数名称
Para函数参数
W
wangzuohuai 已提交
111
请求:{"req":"IE_InvokeScript","rid":58,"para":{"FuncName":"HelloWord","Para":["My","Name"]}}
112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
返回:{"ret":0,"rid":58,"data":{"Ret":"0","FuncRet":""}}
Ret为调用返回值,0代表正常
FuncRet调用函数返回内容,只支持字符型,非字符型先用BASE64编码

10) 请求退出小程序
请求:{"req":"IE_Exit","rid":59,"para":{}}

5、事件通知:
A、IE控件事件
1) IE_BeforeNavigate 准备打开新的URL
{"event":"IE_BeforeNavigate","data":{"Url":""}} Url为新打开的URL地址

2) IE_NavigateComplete URL打开完成
{"event":"IE_NavigateComplete","data":{"Url":""}} Url为URL地址

3) IE_DocumentComplete URL文档加载完成
{"event":"IE_DocumentComplete","data":{"Url":""}} Url为URL地址

4) IE_NewNavigate 新窗口打开指定URL
{"event":"IE_NewNavigate","data":{"Url":"","Ret":0}} Url为新URL地址 Ret为打开结果

5) IE_ProgressChange 进度条进度通知
{"event":"IE_ProgressChange","data":{"Progress":0,"Max":0}} Progress当前进度 Max进度最大值

6) IE_SetSecureLockIcon 设置安全锁定图标
{"event":"IE_SetSecureLockIcon","data":{"SecureLockIcon":0}}

7) IE_StatusTextChange 状态变化
{"event":"IE_StatusTextChange","data":{"Status":""}} Status状态文字描述

8) IE_TitleChange 标题变化
{"event":"IE_TitleChange","data":{"Title":""}} Title 标题

9) IE_WindowClosing 窗口关闭
{"event":"IE_WindowClosing","data":{"ChildWindow":0}} ChildWindow是否子窗口

10) IE_CommandStateChange 命令状态变化
{"event":"IE_CommandStateChange","data":{"Command":0,"Enable":0}} Command命令ID,Enable是否启用

B、PluginOK支持的事件通知:

1) IE_FullScreen 小程序是否响应了热键全屏
{"event":"IE_FullScreen","data":{"FullScreen":0}} FullScreen为当前是否全屏标记

2) Wrl_AppletExit 小程序退出通知
{"event":"Wrl_AppletExit","data":{"ID":1}}

6、其它
请求参数的JSON数据包,请确保是UTF-8无签名的编码。
更多接口请求说明,请参考安装目录中的文档TestWrl.txt、SDK包中的“PluginOK开发者手册.doc”及“PluginOK中间件安全解决方案”。
如还有疑问请直接联系客服 加微信:ZorroSoft,或加QQ群:23126938