瀏覽器自定義協議


查看協議和文件類型的默認應用

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\rtsp]
@="RTSPLoader Plugin"
"URL Protocol"="C:\\Program Files\\VideoLAN\\VLC\\vlc.exe"

[HKEY_CLASSES_ROOT\rtsp\shell]

[HKEY_CLASSES_ROOT\rtsp\shell\open]

[HKEY_CLASSES_ROOT\rtsp\shell\open\command]
@="C:\\Program Files\\VideoLAN\\VLC\\vlc.exe %1"

雙擊運行后在瀏覽器中輸入rtsp://后會提示是否打開RTSPLoader Plugin(實則是打開Windows Shell)。

參數解析

  1. [HKEY_CLASSES_ROOT] 是應用程序運行時必須的信息,[HKEY_CLASSES_ROOT\rtsp]表示在該注冊表目錄下生成了一個rtsp的應用程序運行時必須的信息。
    @=為該應用程序默認名稱,用來顯示程序名稱,不填則為exe名稱。
    URL Protocol=為該協議所要調用的程序地址。

  2. [HKEY_CLASSES_ROOT\rtsp\shell]在rtsp\下生成shell目錄。

  3. [HKEY_CLASSES_ROOT\rtsp\shell\open]在rtsp\shell\下生成open目錄。

  4. [HKEY_CLASSES_ROOT\rtsp\shell\open\command]在rtsp\shell\open\下生成command目錄,@=在command目錄下新建一個默認值為協議調用程序的實際路徑。%1代表rtsp://后面跟的參數。

注冊表效果

輸入地址: 計算機\HKEY_CLASSES_ROOT\rtsp,可以看到調用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-副本/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM