From 51a620a25a4d0ed7b88b7ce1309fa10b54acb8f3 Mon Sep 17 00:00:00 2001 From: wangzuohuai Date: Mon, 1 Mar 2021 11:38:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=BC=80=E5=8F=91=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bin/AIPSignApplet.txt | 8 ++++--- Bin/AutodeskApplet.txt | 8 ++++--- Bin/FlashPlayerApplet.txt | 8 ++++--- Bin/IEApplet.txt | 8 ++++--- Bin/IETabApplet.txt | 8 ++++--- Bin/MSOfficeApplet.txt | 10 +++++---- Bin/QA.txt | 6 +++--- Bin/TXWebApplet.txt | 8 ++++--- Bin/VlcPlayerApplet.txt | 8 ++++--- Bin/WPSOfficeApplet.txt | 8 ++++--- Net/AIPSignApplet.txt | 8 ++++--- Net/AutodeskApplet.txt | 9 ++++---- Net/FlashPlayerApplet.txt | 8 ++++--- Net/IEApplet.txt | 8 ++++--- Net/IETabApplet.txt | 8 ++++--- Net/MSOfficeApplet.txt | 10 +++++---- Net/QA.txt | 6 +++--- Net/TXWebApplet.txt | 8 ++++--- Net/VlcPlayerApplet.txt | 8 ++++--- Net/WPSOfficeApplet.txt | 8 ++++--- ...1\350\200\205\346\211\213\345\206\214.doc" | Bin 1019392 -> 1026048 bytes WrlSDK/SampleCode/PluginExeDemo/Form1.cs | 16 ++++++++------ ...1\350\200\205\346\211\213\345\206\214.doc" | Bin 1019392 -> 1026048 bytes ZbaSDK/SampleCode/PluginExeDemo/Form1.cs | 20 +++++++++++------- 24 files changed, 120 insertions(+), 77 deletions(-) diff --git a/Bin/AIPSignApplet.txt b/Bin/AIPSignApplet.txt index 7858e91..52d89b2 100644 --- a/Bin/AIPSignApplet.txt +++ b/Bin/AIPSignApplet.txt @@ -51,11 +51,13 @@ Open:为需要签章的文件路径,磁盘目录斜杠用/ 指定页面内加载后适配网页切换显示: http://zorrosoft.com/aipframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":2}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"62978E9A-9B00-4E42-9E70-0BE7526E14C0","Port":1200}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"62978E9A-9B00-4E42-9E70-0BE7526E14C0","port":1200}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":2,"data":{"SID":"123","PID":"62978E9A-9B00-4E42-9E70-0BE7526E14C0","Port":1200}} 2)、请求控制AIP电子签章内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Bin/AutodeskApplet.txt b/Bin/AutodeskApplet.txt index ce48636..5f7193a 100644 --- a/Bin/AutodeskApplet.txt +++ b/Bin/AutodeskApplet.txt @@ -62,11 +62,13 @@ Open:为需要打开的文档路径,磁盘目录斜杠用/ 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/acadframe.html -启动后会前后收到两个JSON数据包 +启动后会前后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"997599C3-3C4D-445E-B741-0AD934B45459","Port":990}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"997599C3-3C4D-445E-B741-0AD934B45459","port":990}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"997599C3-3C4D-445E-B741-0AD934B45459","Port":990}} 2)、请求控制Autodesk内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Bin/FlashPlayerApplet.txt b/Bin/FlashPlayerApplet.txt index 016e779..a793564 100644 --- a/Bin/FlashPlayerApplet.txt +++ b/Bin/FlashPlayerApplet.txt @@ -55,11 +55,13 @@ Open:为需要播放的多媒体路径,磁盘目录斜杠用/ 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/flashframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":2}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Port":990}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","port":990}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新播放一个Flash。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":2,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Port":990}} 2)、请求控制Flash Player内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Bin/IEApplet.txt b/Bin/IEApplet.txt index 8802b7b..0665edd 100644 --- a/Bin/IEApplet.txt +++ b/Bin/IEApplet.txt @@ -58,11 +58,13 @@ Open:为需要用IE内核打开的Url地址或本地网页地址 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/ieframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE282","Port":985}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE282","port":985}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE282","Port":985}} 2)、请求控制IE控件内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Bin/IETabApplet.txt b/Bin/IETabApplet.txt index 3a0c9f9..2e538af 100644 --- a/Bin/IETabApplet.txt +++ b/Bin/IETabApplet.txt @@ -26,11 +26,13 @@ Open:为需要用IE内核打开的Url实际地址或本地网页地址 浏览器当前页面启动演示 http://zorrosoft.com/IENewTab.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":1}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl命令。 -B、{"event":"Wrl_Listen","aid":1,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE281","Port":980}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":1,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE281","port":980}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl命令。 +C、{"event":"Wrl_AppletOK","aid":1,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE281","Port":980}} 2)、请求控制IE标签页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Bin/MSOfficeApplet.txt b/Bin/MSOfficeApplet.txt index aa10299..e1ab00f 100644 --- a/Bin/MSOfficeApplet.txt +++ b/Bin/MSOfficeApplet.txt @@ -62,11 +62,13 @@ Open:为需要打开的文档路径,磁盘目录斜杠用/ 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/officeframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"EF720B55-787B-4CBC-AD0A-AE219CFD52C9","Port":950}} -返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"EF720B55-787B-4CBC-AD0A-AE219CFD52C9","port":950}} +返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如打开一个文档。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"EF720B55-787B-4CBC-AD0A-AE219CFD52C9","Port":950}} 2)、请求控制微软Office内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Bin/QA.txt b/Bin/QA.txt index 0fa31a0..9ad51b6 100644 --- a/Bin/QA.txt +++ b/Bin/QA.txt @@ -7,7 +7,7 @@ 3 ʵPluginOKСװ СװЭοװļTestWrl.txtÿС򶼿ͨSDKеĴɰװӦJSON󣬴ʱͬҪע⿪ʽĴļDzһġȻɵİװļŵWEBϣȷƿͨHTTPЭأȻ޸ĶӦJSONдDownAddrʵʵصַȻǰͨWSӵPluginOKмϺִУԶСİװ 4 ǰWSӲΰ죿 -ǰWSӲʱҪȷмǷѾװDz鿴мڵdataĿ¼ZbaService.txt(WrlService.txt)־ʵIPͶ˿Ƕ١˿ںָĶ˿ڲƥ϶ӲϵġҪȷмδijЩȫɱءPluginOKмСǽǩģύ360˰绹أֹĿ¼ԡУ°װϵͳԽ顣 +ǰWSӲʱҪȷмǷѾװDz鿴мڵdataĿ¼ZbaService.txt(WrlService.txt)־ʵIPͶ˿Ƕ١˿ںָĶ˿ڲƥ϶Ӳϵģ鱾ǽǷָ˿ټǷ񱾻˳ҪȷмδijЩȫɱءPluginOKмСǽǩģύ360˰绹أֹĿ¼ԡУ°װϵͳԽ顣 5 PluginOKмԶ мĬϵͳʽУϵͳͻԶԵ¼ϵͳʱǰǿʱعܵġһЩϵͳʽʱҪ޸ļеIJNoServiceΪ1ģʽµ¼ϵͳʱмŻУȷԶеעĿᱻΪֹ򱻰ȫɱء 6 PluginOKмʾû˺Ȩȷʱδ @@ -19,9 +19,9 @@ 9 PluginOKСǷȫԴ PluginOK֮еСҪԸѻشڶƿ򱸰 10 PluginOKмǷշѣ -𣺱мСҵ;շѵģշϵ˾ͷȡ±Ϣ +𣺱мСҵ;շѵģշϵ˾ͷȡ±Ϣڹ;ع֤ 11 PluginOK͵ɶ죿 -𣺲滹ǵ棬ҵСĿڲƷҵֻṩίпԼС򣬱˾ṩĸСڵмȨҵ汨ۻ߼меȨˣȨʱdz㣬ֻҪ·˵Ȩļն˵ԶȨ +𣺲滹ǵ棬ҵСĿڲƷҵֻṩίпԼС(Ҳɿ뱾˾ͻС)˾ṩĸСڵмȨҵ汨ۻ󼸱меȨˣȨʱdz㣬ֻҪ·˵Ȩļն˵ԶȨ 12 PluginOKмĶ 𣺲κļ޸ģҲ۸ҳȸãʵֲκṩĿӿڣҲᵼ¼ʧЧǰNPAPIPPAPIʧЧ⡣ 13 PluginOKмα֤ȫ diff --git a/Bin/TXWebApplet.txt b/Bin/TXWebApplet.txt index 0b4d2df..e5a4d25 100644 --- a/Bin/TXWebApplet.txt +++ b/Bin/TXWebApplet.txt @@ -56,11 +56,13 @@ Url:加载小程序所在的网页实际地址 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/txframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"5620219A-E6A5-4C31-AABD-A90C9A57D5E0","Port":955}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"5620219A-E6A5-4C31-AABD-A90C9A57D5E0","port":955}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"5620219A-E6A5-4C31-AABD-A90C9A57D5E0","Port":955}} 2)、请求控制腾讯软件内嵌网页版: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Bin/VlcPlayerApplet.txt b/Bin/VlcPlayerApplet.txt index c5700e1..75bab82 100644 --- a/Bin/VlcPlayerApplet.txt +++ b/Bin/VlcPlayerApplet.txt @@ -61,11 +61,13 @@ Open :启动后自动播放的流地址或本地多媒体文件路径,斜杠 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/vlcframe.html -启动后会前后收到两个JSON数据包 +启动后会前后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":2}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"90FC7E0E-0D2F-4C38-9875-B06407CE4556","Port":935}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"90FC7E0E-0D2F-4C38-9875-B06407CE4556","port":935}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如重新指定播放一个视频。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":2,"data":{"SID":"123","PID":"90FC7E0E-0D2F-4C38-9875-B06407CE4556","Port":935}} 2)、请求控制VLC多媒体播放网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Bin/WPSOfficeApplet.txt b/Bin/WPSOfficeApplet.txt index 790596f..ee593f0 100644 --- a/Bin/WPSOfficeApplet.txt +++ b/Bin/WPSOfficeApplet.txt @@ -62,11 +62,13 @@ Open:为需要打开的文档路径,磁盘目录斜杠用/ 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/officeframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"60E61D43-503A-470B-9DAA-8E703E1F8BE8","port":910}} +返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如打开一个文档。 返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"60E61D43-503A-470B-9DAA-8E703E1F8BE8","Port":910}} -返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"60E61D43-503A-470B-9DAA-8E703E1F8BE8","Port":910}} 2)、请求控制金山WPS内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/AIPSignApplet.txt b/Net/AIPSignApplet.txt index 921bcc2..afeefd4 100644 --- a/Net/AIPSignApplet.txt +++ b/Net/AIPSignApplet.txt @@ -52,11 +52,13 @@ Open:为需要签章的文件路径,磁盘目录斜杠用/ 指定页面内加载后适配网页切换显示: http://zorrosoft.com/aipframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":2}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"62978E9A-9B00-4E42-9E70-0BE7526E14C0","Port":1200}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"62978E9A-9B00-4E42-9E70-0BE7526E14C0","port":1200}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":2,"data":{"SID":"123","PID":"62978E9A-9B00-4E42-9E70-0BE7526E14C0","Port":1200}} 2)、请求控制AIP电子签章网页内嵌小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/AutodeskApplet.txt b/Net/AutodeskApplet.txt index d6b42fb..201ed94 100644 --- a/Net/AutodeskApplet.txt +++ b/Net/AutodeskApplet.txt @@ -56,18 +56,19 @@ Open:为需要打开的文档路径,磁盘目录斜杠用/ 自动识别当前浏览器并启动Design Review程序在线审阅dwg、dxf文档 {"req":"Wrl_ACADApplet","rid":7,"para":{"Type":"0","Title":"Autodesk Applet","Flag":1,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"Url": "http://zorrosoft.com/acadframe.html","App":"2","Open":"D:/Zorro/test.dwg"}} - 自动识别当前浏览器指定位置自动适配网页大小启动: {"req":"Wrl_ACADApplet","rid":8,"para":{"Type":"0","Title":"Autodesk Applet","Flag":9,"IframeX":0,"IframeY":0,"BarW":0,"BarH":0,"Url": "http://zorrosoft.com/acadfull.html","App":"0","Open":"D:/Zorro/test.dwg"}} 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/acadframe.html -启动后会前后收到两个JSON数据包 +启动后会前后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"997599C3-3C4D-445E-B741-0AD934B45459","Port":990}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"997599C3-3C4D-445E-B741-0AD934B45459","port":990}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"997599C3-3C4D-445E-B741-0AD934B45459","Port":990}} 2)、请求控制Autodesk内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/FlashPlayerApplet.txt b/Net/FlashPlayerApplet.txt index 81c3458..e3c98f5 100644 --- a/Net/FlashPlayerApplet.txt +++ b/Net/FlashPlayerApplet.txt @@ -55,11 +55,13 @@ Open:为需要播放的多媒体路径,磁盘目录斜杠用/ 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/flashframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":2}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Port":990}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","port":990}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新播放一个Flash。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":2,"data":{"SID":"123","PID":"E7C7BDA6-C828-46F1-A7BA-B4C572A01100","Port":990}} 2)、请求控制Flash Player内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/IEApplet.txt b/Net/IEApplet.txt index 6b2f2b7..fd12637 100644 --- a/Net/IEApplet.txt +++ b/Net/IEApplet.txt @@ -58,11 +58,13 @@ Open:为需要用IE内核打开的Url地址或本地网页地址 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/ieframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE282","Port":985}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE282","port":985}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE282","Port":985}} 2)、请求控制IE控件小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/IETabApplet.txt b/Net/IETabApplet.txt index fd13a01..4e424f6 100644 --- a/Net/IETabApplet.txt +++ b/Net/IETabApplet.txt @@ -25,11 +25,13 @@ Open为需要用IE内核打开的Url实际地址或本地网页地址; 浏览器当前页面启动演示 http://zorrosoft.com/IENewTab.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":1}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl命令。 -B、{"event":"Wrl_Listen","aid":1,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE281","Port":980}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":1,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE281","port":980}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl命令。 +C、{"event":"Wrl_AppletOK","aid":1,"data":{"SID":"123","PID":"18BDC030-AF37-50E1-B0AE-E5EF336BE281","Port":980}} 2)、请求控制IE标签页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/MSOfficeApplet.txt b/Net/MSOfficeApplet.txt index bfdc627..29a8415 100644 --- a/Net/MSOfficeApplet.txt +++ b/Net/MSOfficeApplet.txt @@ -62,11 +62,13 @@ Open:为需要打开的文档路径,磁盘目录斜杠用/ 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/officeframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"EF720B55-787B-4CBC-AD0A-AE219CFD52C9","Port":950}} -返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"EF720B55-787B-4CBC-AD0A-AE219CFD52C9","port":950}} +返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如打开一个文档。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"EF720B55-787B-4CBC-AD0A-AE219CFD52C9","Port":950}} 2)、请求控制微软Office内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/QA.txt b/Net/QA.txt index 0fa31a0..9ad51b6 100644 --- a/Net/QA.txt +++ b/Net/QA.txt @@ -7,7 +7,7 @@ 3 ʵPluginOKСװ СװЭοװļTestWrl.txtÿС򶼿ͨSDKеĴɰװӦJSON󣬴ʱͬҪע⿪ʽĴļDzһġȻɵİװļŵWEBϣȷƿͨHTTPЭأȻ޸ĶӦJSONдDownAddrʵʵصַȻǰͨWSӵPluginOKмϺִУԶСİװ 4 ǰWSӲΰ죿 -ǰWSӲʱҪȷмǷѾװDz鿴мڵdataĿ¼ZbaService.txt(WrlService.txt)־ʵIPͶ˿Ƕ١˿ںָĶ˿ڲƥ϶ӲϵġҪȷмδijЩȫɱءPluginOKмСǽǩģύ360˰绹أֹĿ¼ԡУ°װϵͳԽ顣 +ǰWSӲʱҪȷмǷѾװDz鿴мڵdataĿ¼ZbaService.txt(WrlService.txt)־ʵIPͶ˿Ƕ١˿ںָĶ˿ڲƥ϶Ӳϵģ鱾ǽǷָ˿ټǷ񱾻˳ҪȷмδijЩȫɱءPluginOKмСǽǩģύ360˰绹أֹĿ¼ԡУ°װϵͳԽ顣 5 PluginOKмԶ мĬϵͳʽУϵͳͻԶԵ¼ϵͳʱǰǿʱعܵġһЩϵͳʽʱҪ޸ļеIJNoServiceΪ1ģʽµ¼ϵͳʱмŻУȷԶеעĿᱻΪֹ򱻰ȫɱء 6 PluginOKмʾû˺Ȩȷʱδ @@ -19,9 +19,9 @@ 9 PluginOKСǷȫԴ PluginOK֮еСҪԸѻشڶƿ򱸰 10 PluginOKмǷշѣ -𣺱мСҵ;շѵģշϵ˾ͷȡ±Ϣ +𣺱мСҵ;շѵģշϵ˾ͷȡ±Ϣڹ;ع֤ 11 PluginOK͵ɶ죿 -𣺲滹ǵ棬ҵСĿڲƷҵֻṩίпԼС򣬱˾ṩĸСڵмȨҵ汨ۻ߼меȨˣȨʱdz㣬ֻҪ·˵Ȩļն˵ԶȨ +𣺲滹ǵ棬ҵСĿڲƷҵֻṩίпԼС(Ҳɿ뱾˾ͻС)˾ṩĸСڵмȨҵ汨ۻ󼸱меȨˣȨʱdz㣬ֻҪ·˵Ȩļն˵ԶȨ 12 PluginOKмĶ 𣺲κļ޸ģҲ۸ҳȸãʵֲκṩĿӿڣҲᵼ¼ʧЧǰNPAPIPPAPIʧЧ⡣ 13 PluginOKмα֤ȫ diff --git a/Net/TXWebApplet.txt b/Net/TXWebApplet.txt index b0afa1a..d836f38 100644 --- a/Net/TXWebApplet.txt +++ b/Net/TXWebApplet.txt @@ -56,11 +56,13 @@ Url:加载小程序所在的网页实际地址 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/txframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"5620219A-E6A5-4C31-AABD-A90C9A57D5E0","Port":955}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"5620219A-E6A5-4C31-AABD-A90C9A57D5E0","port":955}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"5620219A-E6A5-4C31-AABD-A90C9A57D5E0","Port":955}} 2)、请求控制腾讯软件内嵌网页版: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/VlcPlayerApplet.txt b/Net/VlcPlayerApplet.txt index e3449e2..e51a03a 100644 --- a/Net/VlcPlayerApplet.txt +++ b/Net/VlcPlayerApplet.txt @@ -61,11 +61,13 @@ Open :启动后自动播放的流地址或本地多媒体文件路径,斜杠 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/vlcframe.html -启动后会前后收到两个JSON数据包 +启动后会前后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":2}} -返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"90FC7E0E-0D2F-4C38-9875-B06407CE4556","Port":935}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":2,"data":{"SID":"123","PID":"90FC7E0E-0D2F-4C38-9875-B06407CE4556","port":935}} 返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如重新指定播放一个视频。 +代表小程序创建成功,返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 +C、{"event":"Wrl_AppletOK","aid":2,"data":{"SID":"123","PID":"90FC7E0E-0D2F-4C38-9875-B06407CE4556","Port":935}} 2)、请求控制VLC多媒体播放网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git a/Net/WPSOfficeApplet.txt b/Net/WPSOfficeApplet.txt index 6a357e6..c1a59b1 100644 --- a/Net/WPSOfficeApplet.txt +++ b/Net/WPSOfficeApplet.txt @@ -62,11 +62,13 @@ Open:为需要打开的文档路径,磁盘目录斜杠用/ 当前页指定位置自动适配网页加载测试 http://zorrosoft.com/officeframe.html -启动后会先后收到两个JSON数据包 +启动后会先后收到三个JSON数据包 A、{"ret":0,"rid":1,"data":{"ID":3}} +代表小程序WS侦听服务就绪 +B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"60E61D43-503A-470B-9DAA-8E703E1F8BE8","port":910}} +返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如打开一个文档。 返回ID为当前小程序运行ID,通过此ID,可执行Wrl_AppletControl、Wrl_AppletScroll、Wrl_AppletResize等命令。 -B、{"event":"Wrl_Listen","aid":3,"data":{"SID":"123","PID":"60E61D43-503A-470B-9DAA-8E703E1F8BE8","Port":910}} -返回的侦听端口,可再建立一个Web Socket连接后,调用小程序中的相关功能,比如新打开一个网页。 +C、{"event":"Wrl_AppletOK","aid":3,"data":{"SID":"123","PID":"60E61D43-503A-470B-9DAA-8E703E1F8BE8","Port":910}} 2)、请求控制金山WPS内嵌网页小程序: 当前端不再需要小程序时可指定关闭,或者显示/隐藏及全屏显示等 diff --git "a/WrlSDK/PluginOK\345\274\200\345\217\221\350\200\205\346\211\213\345\206\214.doc" "b/WrlSDK/PluginOK\345\274\200\345\217\221\350\200\205\346\211\213\345\206\214.doc" index 2ce824041060c8752d7cd61948013156eae61824..e1852e0b25696d2f0b363080462678bb3cd1cf10 100644 GIT binary patch delta 36781 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 Q)w*~CQ!ZEI2IcSbA4Ol(%K!iX delta 32081 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 diff --git a/WrlSDK/SampleCode/PluginExeDemo/Form1.cs b/WrlSDK/SampleCode/PluginExeDemo/Form1.cs index e30ca56..a24f49b 100644 --- a/WrlSDK/SampleCode/PluginExeDemo/Form1.cs +++ b/WrlSDK/SampleCode/PluginExeDemo/Form1.cs @@ -69,9 +69,10 @@ namespace PluginExeDemo return; WebSocketEvent.SetForm(this); ushort nPort = ushort.Parse(m_Para["PORT"]); + /// 开始WebSocket侦听服务,返回实际侦听端口 ushort nListenPort = WebSocketServer.Listen(nPort, m_Para["SID"], m_Para["AI"]); - /// 建立事件通知 + /// 建立事件通知 WebSocketServer.NewConnEvent += WebSocketEvent.NewConnEvent; WebSocketServer.RecMsgEvent += WebSocketEvent.RecMsgEvent; WebSocketServer.RecTextEvent += WebSocketEvent.RecTextEvent; @@ -216,8 +217,10 @@ namespace PluginExeDemo /// /// 通知HTTP同步请求处理 /// - /// - /// + /// + /// + /// + /// /// public void HttpReqEvent(string bstrSID, string bstrProtocol, string bstrUrl, string bstrPara, out string pVal) { @@ -240,9 +243,9 @@ namespace PluginExeDemo /// /// WS连接请求中出现错误 /// - /// - /// - /// + /// + /// + /// public void RecErrEvent(string bstrSID, uint nReqID, string bstrErrInfo) { m_Form.textBox2.AppendText("连接出现错误:"); @@ -254,6 +257,7 @@ namespace PluginExeDemo /// 通知关闭连接 /// /// + /// public void ConnCloseEvent(string bstrSID, string bstrReason) { m_Form.textBox2.AppendText("关闭连接:"); diff --git "a/ZbaSDK/PluginOK\345\274\200\345\217\221\350\200\205\346\211\213\345\206\214.doc" "b/ZbaSDK/PluginOK\345\274\200\345\217\221\350\200\205\346\211\213\345\206\214.doc" index 2ce824041060c8752d7cd61948013156eae61824..e1852e0b25696d2f0b363080462678bb3cd1cf10 100644 GIT binary patch delta 36781 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 Q)w*~CQ!ZEI2IcSbA4Ol(%K!iX delta 32081 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 diff --git a/ZbaSDK/SampleCode/PluginExeDemo/Form1.cs b/ZbaSDK/SampleCode/PluginExeDemo/Form1.cs index 9303735..a24f49b 100644 --- a/ZbaSDK/SampleCode/PluginExeDemo/Form1.cs +++ b/ZbaSDK/SampleCode/PluginExeDemo/Form1.cs @@ -9,8 +9,8 @@ using System.IO; using System.Windows.Forms; /// 添加核心组件引用 -using ZbaEngine; -using ZbaBase; +using WrlEngine; +using WrlBase; namespace PluginExeDemo { @@ -69,9 +69,10 @@ namespace PluginExeDemo return; WebSocketEvent.SetForm(this); ushort nPort = ushort.Parse(m_Para["PORT"]); + /// 开始WebSocket侦听服务,返回实际侦听端口 ushort nListenPort = WebSocketServer.Listen(nPort, m_Para["SID"], m_Para["AI"]); - /// 建立事件通知 + /// 建立事件通知 WebSocketServer.NewConnEvent += WebSocketEvent.NewConnEvent; WebSocketServer.RecMsgEvent += WebSocketEvent.RecMsgEvent; WebSocketServer.RecTextEvent += WebSocketEvent.RecTextEvent; @@ -216,8 +217,10 @@ namespace PluginExeDemo /// /// 通知HTTP同步请求处理 /// - /// - /// + /// + /// + /// + /// /// public void HttpReqEvent(string bstrSID, string bstrProtocol, string bstrUrl, string bstrPara, out string pVal) { @@ -240,9 +243,9 @@ namespace PluginExeDemo /// /// WS连接请求中出现错误 /// - /// - /// - /// + /// + /// + /// public void RecErrEvent(string bstrSID, uint nReqID, string bstrErrInfo) { m_Form.textBox2.AppendText("连接出现错误:"); @@ -254,6 +257,7 @@ namespace PluginExeDemo /// 通知关闭连接 /// /// + /// public void ConnCloseEvent(string bstrSID, string bstrReason) { m_Form.textBox2.AppendText("关闭连接:"); -- GitLab