最近,忙於尋找解決方案,許久沒有更新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方法調用應用程序時傳遞的參數也是通過控制檯傳遞的。
未完待續。。。。。