js調用本地應用程序

這兩天公司由於web下載大型的文件(超2G的MP4文件)的時候,下載到2G左右瀏覽器就會自動斷開連接,後來沒辦法就準備些一個下載工具!從瀏覽器中啓動下載工具,並傳遞下載參數給下載工具,在工具中下載並管理資源,廢話就這麼多,轉入正題。
在網上翻閱各種資料,總結了有3種方法可以實現此功能:
1.自定義協議
類似於mailto http https 主流瀏覽器都支持只需要在註冊表中添加相應內容即可,官方叫做 Pluggable Protocol,瀏覽器只完成啓動程序,傳遞參數工作,程序獨立運行,不能與網頁交互:
示例:
自定義協議名爲DEMO,
要啓動的應用程序完整路徑爲 C:\DIR\EXE.exe
Web 請求爲 DEMO://AAA:a;BBB:b;CCC:c;
HKEY_CLASSES_ROOT
DEMO (Default) = “URL:DEMO Protocol”
URL Protocol = “”
DefaultIcon (Default) = “C:\DIR\EXE.exe,1”
shell
open
command (Default) = “C:\DIR\EXE.exe” “%1”
command 就是啓動程序的命令行,官方文檔中講 %1 將會被替換爲 協議內容 DEMO://AAA:a;BBB:b;CCC:c;並且URI編碼
但實際程序接收到的參數爲 DEMO://AAA:a;BBB:b;CCC:c;/ 多出了一個字符(測試環境 Firfox21.0 chrome27.0.1453.94 IE8 360瀏覽器)
註冊表內容還可以添加到HKEY_LOCAL_MACHINE\SOFTWARE\Classes\下,結構與HKEY_CLASSES_ROOT相同。
官方文檔 http://msdn.microsoft.com/en-us/library/aa767914(v=vs.85).aspx
2.NPAPI 插件
window下開發NPAPI參考文檔:http://mozilla.com.cn/post/21666/
NPAPI 是重型武器,當別的方法無法到達你的目的時,才建議使用。
運行在NPAPI插件中的代碼擁有當前用戶的全部權限,不能利用Google Chrome 的沙箱技術和其他安全防護技術。 在處理不可信任的輸入, 如content scripts和XMLHttpRequest 時,你必須格外小心。
鑑於使用NPAPI可能引入的風險,使用了NPAPI的擴展在提交給web store或者extension gallery 時要經過人工審覈。
所以從2014年1月開始,Chrome Stable版本將阻止網頁安裝NPAPI插件,只允許白名單裏的流行插件繼續使用: Silverlight,Unity,Google Earth,Google Talk,Facebook Video。

3.Browser Extenstion
開發基於Chrome的Extenstion參考文檔:http://open.chrome.360.cn/extension_dev/overview.html
一個應用(擴展)其實是壓縮在一起的一組文件,包括HTML,CSS,Javascript腳本,圖片文件,還有其它任何需要的文件。 應用(擴展)本質上來說就是web頁面,它們可以使用所有的瀏覽器提供的API,從XMLHttpRequest到JSON到HTML5全都有。
應用(擴展)可以與Web頁面交互,或者通過content script或cross-origin XMLHttpRequests與服務器交互。應用(擴展)還可以訪問瀏覽器提供的內部功能,例如標籤或書籤等。Browser Extenstion 如何與本地應用程序通信流程
WebPage —> Browser Extenstion —> Native Message —> Local Appliction

最終選擇的方法2實現。詳情見:http://blog.csdn.net/xujinming0124/article/details/46619251

發佈了14 篇原創文章 · 獲贊 4 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章