ubuntu下浏览器调用本地应用程序

时间:2022-03-18 17:26:10
ubunut下浏览器调用本地应用程序需要desktop文件和scheme协议的支持,和windows 的url protocol类似,只是注册协议的方式不一样。

首先是desktop文件,里面需要加入一个字段来注册协议

MimeType=x-scheme-handler/test

接着在Exec字段中加入 %u来接受参数

Exec=/usr/local/Test/test %u

如果需要root权限则需要使用gksu,它可以让应用程序启动的时候弹出对话框输入root密码,从而以root权限启动程序,如下图

[Desktop Entry]
Type=Application
Exec=gksu /usr/local/Test/Test %u
Name=Test
GenericName=My Test App.
Icon=/usr/local/Test/app.png
Terminal=false
Categories=Network;
MimeType=x-scheme-handler/test
Name[zh_CN]=我的测试web

接着需要运行一个命令更新协议

sudo update-desktop-database

然后是html里面,代码如下

<html>
<body>
<a href="Test:xxx xxx">open Test</a>
</body>
</html>

这样点击调用后,是类似 /usr/local/Test/Test 'Test:xxx xxx' 这种调用方式。 如果是windows的话,是类似 /usr/local/Test/Test xxx xxx 这种方式,所以两者解析命令行参数的时候要注意区别