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