js通過NPAPI調用本地應用程序並傳參

最近,忙於尋找解決方案,許久沒有更新blog,第一次寫與web端交互的windows桌面應用,可謂是焦頭爛額,遇到的問題一大把一大把(此時的想法是世界上要是隻有IE這一個瀏覽器,那該是多麼的清淨,本文僅記錄本人的開發中遇到的問題,供其他人學習參考。並不能保證適用所有的情況):
Q1:web頁面如何判斷當前windows是否已經安裝

Q2:web頁面怎麼給客戶端傳參
由於最後決定是通過npapi插件 調用本地應用程序,所以問題有更復雜了一些:
1、 web如何調用npapi插件並傳遞參數。
F:
直接上代碼

<embed type="application/npapitestdemoone-plugin" id="pluginId">

<script>
    var embed = document.getElementById('pluginId');


    function TestFun() 
    {
        var rev = 0;
        var param = "node app.js -p55";
        var plugin = document.getElementById("pluginId");
        rev = plugin.TestFun(param);
      //  alert(rev);
    }
</script>

其中的param就是需要傳遞的參數
document.getElementById(“pluginId”)實例化控件後直接調用控件的方法就行了,是不是很簡單;
2、npapi插件接收到參數後,如何將參數傳遞給應用程序
F:
JS與控件之間的傳參是通過控制檯來完成的,所以在TestFun()方法內直接通過args[0]來獲取頁面傳遞過來的參數
在控件的TestFun()方法接受到參數後 通過CreateProcess(nPath,strBuf,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi) ;方法傳遞給應用程序,nPath爲應用程序路徑,strBuf就是需要傳遞的參數
關於CreateProcess的其他參數的使用請參考:http://blog.csdn.net/xujinming0124/article/details/46800595
3、應用程序怎麼接收並使用(解析)npapi插件傳過來的參數
CreateProcess方法調用應用程序時傳遞的參數也是通過控制檯傳遞的。

未完待續。。。。。

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