浏览器自定义协议

摘要:
查看协议和文件类型的默认应用程序Win+I->自定义浏览器协议允许您在浏览器中使用protocol:id=opaqueInternalAccessObj,然后为实际传入的参数注册表解析创建一个新的rtsp.reg文件。ProgramFiles VideoLAN VLC VLC.exe%1“双击以运行,然后在浏览器中输入rtsp:参数解析[HKEY_CLASSES_ROOT]。

查看协议和文件类型的默认应用

Win + I -> 应用 -> 默认应用,按协议指定默认应用。
image
可以看到有些程序自定义协议在里面,并且可以设置打开此协议的程序,但是并没有发现可以新增协议。只能通过注册表来解决。
image

自定义浏览器协议

chrome浏览器用到了自定义浏览器协议这一标准。自定义浏览器协议允许在浏览器中使用protocol://url
的形式进行调用本地程序。包括在网页上拉起百度云网盘、或者拉起QQ等等,都属于自定义浏览器协议。

原理分析

在通过浏览器调用外部程序时,浏览器会在我们本地的注册表中查找协议所对应的注册表,并获取实际要调用的程序路径进行调用。
例如

rtsp://callback/?id=opaqueInternalAccesssObj

rtsp://为我们自定义的浏览器协议,后面的callback/?id=opaqueInternalAccessObj则为实际传入的参数

注册表解析

新建一个rtsp.reg文件,输入如下内容

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT
tsp]
@="RTSPLoader Plugin"
"URL Protocol"="C:\Program Files\VideoLAN\VLC\vlc.exe"

[HKEY_CLASSES_ROOT
tspshell]

[HKEY_CLASSES_ROOT
tspshellopen]

[HKEY_CLASSES_ROOT
tspshellopencommand]
@="C:\Program Files\VideoLAN\VLC\vlc.exe %1"

双击运行后在浏览器中输入rtsp://后会提示是否打开RTSPLoader Plugin(实则是打开Windows Shell)。

参数解析

  1. [HKEY_CLASSES_ROOT] 是应用程序运行时必须的信息,[HKEY_CLASSES_ROOT tsp]表示在该注册表目录下生成了一个rtsp的应用程序运行时必须的信息。
    @=为该应用程序默认名称,用来显示程序名称,不填则为exe名称。
    URL Protocol=为该协议所要调用的程序地址。

  2. [HKEY_CLASSES_ROOT tspshell]在rtsp下生成shell目录。

  3. [HKEY_CLASSES_ROOT tspshellopen]在rtspshell下生成open目录。

  4. [HKEY_CLASSES_ROOT tspshellopencommand]在rtspshellopen下生成command目录,@=在command目录下新建一个默认值为协议调用程序的实际路径。%1代表rtsp://后面跟的参数。

注册表效果

输入地址: 计算机HKEY_CLASSES_ROOT tsp,可以看到调用rtsp的程序名设置,和调用rtsp协议的默认程序(URL Protocol)
image
最终执行命令及参数
image

点击页面的rtsp超链接,提示用VLC media player打开。
image
image
参考:
https://blog.csdn.net/lu_wei_wei/article/details/61421270
https://veryfirefly.github.io/custom-external-protocol-副本/

免责声明:文章转载自《浏览器自定义协议》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇(黑客游戏)HackTheGame1.21 过关攻略springboot整合redis详细步骤下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

关于mui页面跳转(跳转及参数传递)

页面跳转比较简单的一种写法如下,extras中可以传递扩展参数(param), 传值: mui.openWindow({ url : 'mspck.jsp', id : 'mspck.jsp', extras : { openid : openid } }); 取值: varself= plus.webview.currentWebview(); var...

Chrome打开标签页预览

类似于Microsoft Edge浏览器上的标签页缩略图预览非常方便,其实现在谷歌浏览器正在测试相关的功能,如果想提前体验,就在地址栏输入“chrome://flags”并按下回车键,点击右上角的菜单按钮并选择“查找”命令,在弹出的搜索框中输入关键词“Tab HoverCard Images”,查找到这个选项后点击列表中的“Enabled”选项,随后重新启...

ColorBox常见问题

发现colorbox官方网站的troubleshoot写的比较好,转载一下。 1,flash覆盖colorbox: This is not a ColorBox specific problem, by default Flash will overlay any HTML content. This can be prevented by setting...

OSPF 做负载均衡

使用OSPF做负载均衡探究 一、OSPF产生背景 随着互联网的快速发展,为了满足建造越来越大基于IP网络的需要,不得不把网络逻辑结构划分为一个个单一自治系统。 二、OSPF技术原理 OSPF(Open Shortest Path First开放式最短路径优先 )是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一...

浏览器开发者工具基本使用教程

浏览器开发者工具基本使用教程 在阅读下面内容之前,那么些简单的了解浏览器开发者工具到底是什么东西,到底有什么用途。 浏览器开发者工具到底是什么? 其实简单的说,浏览器开发者工具就是给专业的web应用和网站开发人员使用的工具,当然只要你有兴趣想要了解,只要你对这个世界充满这好奇,什么东西你都可以了解。 开发者工具到底有什么用? 它的作用在于,帮助开发人员...

goldengate 12c 12.2 新特性(updated)

GoldenGate 12.2已经提供下载,增加了不少新特性1. 异构配置加强不在需要sourceDefs和AssumeTargetDefs文件,在队列文件中已经包含metadata信息,比如table name, column name, column type等,进一步降低OGG在异构环境下配置的工作量;2. 内置心跳表在早期的OGG版本中,如果要监控...