? ? ? ? 軟航文檔控件現有版本依賴Manifest V2擴展技術支持才能正常運行,然而這個擴展技術到2025年6月在Chrome高版本上就徹底不支持了,現在Chrome 133開始的版本已經開始彈出警告,必須手工開啟擴展支持才能正常運行。那么如何解決這個技術難題呢?
? ? ? ? PluginOK中間件作為一個實現瀏覽器與本地程序之間進行雙向調用的低成本、強兼容、安全可控、輕量級、易集成、可擴展、跨瀏覽器的原生小程序系統,解決起來毫無壓力,可在線體驗。步驟如下:
1、首先下載體驗軟件包:安裝包->http://local.zorrosoft.com/Files/PluginOKNet.exe 綠色版-> http://local.zorrosoft.com/Files/WRL.zip 綠色版下載后解壓運行installwrl.bat即可完成安裝。
2、打開體驗網站:http://local.zorrosoft.com/ocxfull.html 或者?http://local.zorrosoft.com/ocxframe.html,前者實現整個網頁區嵌入,后者實現網頁局部區域嵌入顯示,然后點擊連接,提示連接成功說明第一步安裝的中間件服務啟動正常。然后在發送按鈕上面的輸入框中替換內容如下:
A、ocxfull.html完整嵌入的填寫以下內容:
{"req":"Wrl_AppletStart","rid":99,"para":{"Type":"0","Title":"ActiveX網頁小程序","NodeName":"OcxWebApplet","PID":"OcxWebApplet","Flag":72,"Left":0,"Top":0,"Width":0,"Height":0,"IframeX":0,"IframeY":0,"Option":"0","Zoom":100,"ScrollTop":0,"Web": {"DataPath":"c:/OfficeDoc","ClassID":"{A39F1330-3322-4A1D-9BF0-0BA2BB90E970}"},"Open":"http://local.zorrosoft.com/Files/test.doc"}}
B、ocxframe.html 局部嵌入的填寫以下內容:
{"req":"Wrl_AppletStart","rid":8,"para":{"Type":"0","Title":"ActiveX網頁小程序","NodeName":"OcxWebApplet","PID":"OcxWebApplet","Flag":66,"Left":20,"Top":20,"Width":480,"Height":320,"IframeX":0,"IframeY":210,"BarW":0,"BarH":0,"Option":"0","Web": {"DataPath":"c:/OfficeDoc","ClassID":"{A39F1330-3322-4A1D-9BF0-0BA2BB90E970}"},"Open":"http://local.zorrosoft.com/Files/test.doc"}}
發送內容替換完成后,直接點擊發送,正常情況下,您可以分別看到如下畫面:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 完整嵌入效果
? ? ? 局部嵌入效果,點擊適配顯示切換,也可以自動適配網頁區顯示大小聰明右側和底部顯示。
對于控件提供的開發接口,也提供了自動化的接口請求支持:
11)、請求獲取屬性值
Name 指定屬性名稱 如遇到取子接口的,名稱增加子接口的名稱,支持多級,比如獲取VLC播放列表的數量名稱用playlist.itemCount 下同
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"src"}}
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"volume"}}
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"Toolbar"}}
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"playlist.itemCount"}}
{"req":"OCX_GetProperty","rid":11,"para":{"Name":"input.rate"}}
{"req":"OCX_PutProperty","rid":11,"para":{"Name":"video.logo.opacity"}}
返回: {"ret":0,"rid":11,"data":{"Ret":0,"Val":""}}
如果返回的是自動化接口,Val的值類似這樣的:playlist={CatchDispatch},需要繼續調用這個自動化接口的屬性或方法時,接下來的請求里指定參數{CatchDispatch},否則默認調用控件主接口的,下同
12)、請求設置屬性
Name 指定屬性名稱 如遇到設置子接口的,名稱增加子接口的名稱,支持多級
Val 指定屬性值,字符串用""包含,字符串中包含\或"等字符時,需要加轉義符\,數值型不用"",BOOL類型設置真時數值是-1
當需要釋放緩存的自動化接口時,Name可以指定為類似這樣的playlist={CatchDispatch},Val設置為0或空
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"src","Val":"d:/zorro/test.pdf"}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"Toolbar","Val":-1}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"Visible","Val":-1}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"volume","Val":0}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"input.rate","Val":2}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"video.logo.opacity","Val":50}}
{"req":"OCX_PutProperty","rid":12,"para":{"Name":"playlist={CatchDispatch}","Val"0}}
返回: {"ret":0,"rid":12,"data":{"Ret":0}}
13)、請求無傳入參數方法
Name 指定方法名稱 如遇到調用子接口的,名稱增加子接口的名稱,支持多級,比如調用VLC播放列表播放方法名稱用playlist.play 下同
DID 也可以指定方法序號
{"req":"OCX_Invoke0","rid":13,"para":{"Name":"gotoFirstPage"}}
{"req":"OCX_Invoke0","rid":13,"para":{"Name":"gotoNextPage"}}
{"req":"OCX_Invoke0","rid":13,"para":{"Name":"playlist.play"}}
返回: {"ret":0,"rid":13,"data":{"Ret":0,"Val":""}}
14)、請求只傳入1個參數方法
Name 指定方法名稱 如遇到調用子接口的,名稱增加子接口的名稱,支持多級,比如調用VLC播放列表播放方法名稱用playlist.add 下同
DID 也可以指定方法序號
Para1 對應參數值 ,字符串用""包含,字符串中包含\或"等字符時,需要加轉義符\,數值型不用"";參數如果需要再次調用自動化接口獲取的值,可以這樣傳參{DispatchPara}=playlist.itemCount 下同
{"req":"OCX_Invoke1","rid":14,"para":{"Name":"LoadFile","Para1":"d:/zorro/test.pdf"}}
{"req":"OCX_Invoke1","rid":14,"para":{"Name":"setShowToolbar","Para1":0}}
{"req":"OCX_Invoke1","rid":14,"para":{"Name":"video.logo.file","Para1":"D:\\Zorro\\test.png"}}
{"req":"OCX_Invoke1","rid":14,"para":{"Name":"playlist.add","Para1":"http://www.zorrosoft.com/Files/PluginOKBrowserApplet.mp4"}}
返回: {"ret":0,"rid":14,"data":{"Ret":0,"Val":""}}
15)、請求只傳入2個參數方法
Name 指定方法名稱
DID 也可以指定方法序號
Para1和Para2分別對應參數1和2數值 如果需要傳緩存的自動化接口,可以這樣傳參{CatchDispatch}=playlist
{"req":"OCX_Invoke2","rid":15,"para":{"Name":"printPages","Para1":1,"Para2":2}}
返回: {"ret":0,"rid":15,"data":{"Ret":0,"Val":""}}
16)、請求只傳入3個參數方法
Name 指定方法名稱
DID 也可以指定方法序號
Para1、Para2、Para3分別對應參數1、2和3的數值
{"req":"OCX_Invoke3","rid":16,"para":{"Name":"printPagesFit","Para1":"1","Para2":"2","Para3":"0"}}
返回: {"ret":0,"rid":16,"data":{"Ret":0,"Val":""}}
17)、請求只傳入4個參數方法
Name 指定方法名稱
DID 也可以指定方法序號
Para1、Para2、Para3、Para4分別對應參數1、2、3和4的數值
{"req":"OCX_Invoke4","rid":17,"para":{"Name":"setCurrentHighlight","Para1":255,"Para2":0,"Para3":255,"Para4":0}}
返回: {"ret":0,"rid":17,"data":{"Ret":0,"Val":""}}
18)、請求只傳入5個參數方法
Name 指定方法名稱
DID 也可以指定方法序號
Para1、Para2、Para3、Para4、Para5分別對應參數1、2、3、4和5的數值
福昕OFD版式辦公套件OCX 調用打開文檔
{"req":"OCX_Invoke5","rid":18,"para":{"Name":"openFile","Para1":"d:/zorro/test.pdf","Para2":"0","Para3":"","Para4":"","Para5":""}}
返回: {"ret":0,"rid":18,"data":{"Ret":0,"Val":""}}
19)、請求只傳入6個參數方法
Name 指定方法名稱
DID 也可以指定方法序號
Para1、Para2、Para3、Para4、Para5、Para6分別對應參數1、2、3、4、5和6的數值
{"req":"OCX_Invoke6","rid":19,"para":{"Name":"","Para1":"","Para2":"","Para3":"","Para4":"","Para5":"","Para6":""}}
返回: {"ret":0,"rid":19,"data":{"Ret":0,"Val":""}}
支持更多參數的接口也有,就不一一展示了。
PluginOK中間件也不僅僅支持NTKO WebOffice文檔控件,金格iWebOffice、OfficeCtrl、微軟DSOFramer、點聚等文檔控件也毫無壓力。
最最重要的是,基于PluginOK中間件實現的PageHiOffice文檔控件,可以全面碾壓以上文檔控件對Office、金山WPS及永中Office的兼容性,而且還額外提供了完整嵌入模式,功能更全,完全不依賴瀏覽器提供的任何插件或擴展接口,不用再擔心瀏覽器的升級導致技術方案失效引發的系統停擺風險!在線體驗可以戳這里-> VUE2:http://local.zorrosoft.com/office?VUE3:http://local.zorrosoft.com/office3 JS:http://local.zorrosoft.com/officeJS