Loading

Windows 客户端添加 URL Protocol 支持

场景

在网页上可以直接唤起 Windows 客户端,比如在百度网盘的网页上点击下载,可以唤起安装在电脑上的百度网盘客户端,并将需要下载的文件参数传递给客户端。

实现

1 注册表

需要在注册表中写入相应的值,向 Windows 系统注册 URL Protocol 协议。
位置在 计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\

这里的 easibook 是协议名

设置 FriendlyAppName,在唤起客户端时,浏览器提示会使用这个名称。

这里的 %1 是参数,如果在网页上的调用是:easibook://open?aaa=AAA 123&bbb=BBB
则这里的 %1 参数就是 easibook://open/?aaa=AAA%20123&bbb=BBB,注意这里有 URL 编码,空格变成了 %20。
客户端程序的启动参数就是编码之后的这一串,需要自己进行解析,一般有库可以使用。

.net 版本:dotnet-campus/dotnetCampus.CommandLine: dotnetCampus.CommandLine is probably the fastest command line parser in all .NET open-source projects. Parsing a classical command line only takes 1091ns, thus 10 ticks.

2 调用

直接在浏览器地址栏输入:easibook://open?aaa=AAA 123&bbb=BBB 即可完成调用。浏览器会给出提示:

如果是代码调用,则是:

window.location.href = "easibook://open/?aaa=AAA%20123&bbb=BBB"

或者使用 a 标签

<a href = "easibook://open/?aaa=AAA%20123&bbb=BBB"></a>

其它参考

利用URL Protocol实现网页调用本地应用程序_只要踏出一步,路就在前方——zssure-CSDN博客_浏览器调用本地应用程序

原文链接:https://www.cnblogs.com/jasongrass/p/14524863.html

posted @ 2021-03-12 16:43  J.晒太阳的猫  阅读(916)  评论(1编辑  收藏  举报