网页上通过超链接直接打开PC应用

有时候我们会发现有些网页可以直接打开本地应用,比如在百度网盘网页版下载文件时,会自动打开本地的百度网盘软件。Visual Studio Code打开浏览器认证后也会转到本地引用,Unity官网打开本地的Unity Hub应用进行Unity的下载和更新等。

以下内容只针对Windows OS,其它系统上无法测试,当然你要尝试也没问题

原理解析

其实要实现网页上调起本地应用这个功能也不复杂,主要就是依赖于自定义协议。

当点击了网页中的某个超链接时,浏览器会根据协议去寻找对应的调用,最基础的 http 协议就是使用 http:// 来指定,浏览器接收到地址栏的输入后,进行一个http请求,其他的还有 ws:// 以及他俩的安全版本 https://wss://等。

所以我们只要给浏览器知道我们自定义的协议就行了,比如我有一个 sc:// 协议,浏览器根据这个协议打开对应的SC应用。其实随便一个都行,只要把能解析 sc 协议就行(不是)

具体实现

要想实现自定义协议,操作系统又是 Windows OS,那必然是使用注册表来实现。

注册表有好几项,本次相关的配置位于 HEY_CLASSES_ROOT 项下面,HEY_CLASSES_ROOT 中存放着应用启动的相关信息,其中就包括了通过自定义协议来启动应用。

所以只需要在 HEY_CLASSES_ROOT 下面新建一个 sc 项,默认键内容为:URL:sc,还需要一个空键,键名:URL Protocol 来指定这是一个协议,然后添加子健 shell=>open=>commandcommand默认键内容为要打开的应用所在位置。

一个自定义协议就完成了,在网页中添加一个超链接 sc://123,点击即可打开对应的应用。

发布时间:2021-12-28
其他阅读

Angular中开发一个代码库

Angular 的复杂项目中,我们可以对其拆分出不同功能模块进行开发,但是对于大型项目,或者我们直接考虑拆成库,将一部分的模块合起来组成一个库,方便复用,比如我们熟悉的各种设计组件库,就是一堆模块的合集。

查看原文

管道技术——中间件的灵魂

在现代Web开发中,中间件技术使用越来越广泛,本文带大家了解中间件的基础,同时也是中间件的灵魂所在,管道技术。在C#中,依赖于委托,我们可以很容易就实现一个中间件管道。所以在阅读本文前,请确保你已经学会了什么是委托,包括但不限于Delegate,Action,Func。除此之外,本文还会使用到反射相关知识,请确保你已经学会了什么是反射。

查看原文

WPF中切换主题功能

在现代 Windows 系统中,系统提供了亮色主题和暗色主题,Windows 自带的应用程序都已经适配该功能。本文介绍在使用 WPF 构建 Windows 窗口应用时怎么实现主题切换。

查看原文

我的读书清单

分享互联网人的读书清单,从2024年开始,本文会整理我读过的书籍,按时间排序,编辑成一份读书清单。

查看原文

WPF使用云母材质

在最新的Windows 11 OS中,微软为流畅设计(Fluent Design)带来了新的云母材质,云母材质一种不透明的动态效果,微软将其作为Windows 11应用窗体的默认材质。

查看原文