ubunut下浏览器调用本地应用程序需要desktop文件和scheme协议的支持,和windows 的url protocol类似,只是注册协议的方式不一样。
首先是desktop文件,里面需要加入一个字段来注册协议
MimeType=x-scheme-handler/test
接着在Exec字段中加入 %u来接受参数
Exec=/usr/local/Test/test %u
如果需要root权限则需要使用gksu,它可以让应用程序启动的时候弹出对话框输入root密码,从而以root权限启动程序,如下图
1[Desktop Entry] 2Type=Application 3Exec=gksu /usr/local/Test/test %u 4Name=Test 5GenericName=My Test App. 6Icon=/usr/local/Test/app.png 7Terminal=false 8Categories=Network; 9MimeType=x-scheme-handler/test 10Name[zh_CN]=我的测试web
接着需要运行一个命令更新协议
sudo update-desktop-database
然后是html里面,代码如下
1<html> 2<body> 3<a href="Test:xxx xxx">open Test</a> 4</body> 5</html>
这样点击调用后,是类似 /usr/local/Test/test 'Test:xxx xxx' 这种调用方式。 如果是windows的话,是类似 /usr/local/Test/test xxx xxx 这种方式,所以两者解析命令行参数的时候要注意区别