SmiteChow
2023-11-03 09:46:35 +08:00
你编码的仅仅是 URI 地址,并未指定具体协议,浏览器 detect 到是文件系统的 URI 它会自动给你把协议头 file://加上然后去加载。
你如果要指定操作系统上的 app 去执行加载资源的话,比如你说的文件夹方法其实质是资源管理器 app:explorer.exe ,由于它并未在系统中注册 URL 协议头,你要自己动手:
```gpt
要使 Chrome 支持自定义协议 app ,您需要进行以下步骤:
创建一个注册表项:在 Windows 操作系统中,打开注册表编辑器( regedit ),导航到 HKEY_CLASSES_ROOT 键下。在该键下创建一个新的子键,命名为您的自定义协议(例如,myapp )。
在新创建的子键下,创建一个名为"URL Protocol"的字符串值,并将其值设置为一个空字符串。
创建一个名为"shell"的子键,并在该子键下创建一个名为"open"的子键。
在"open"子键下,创建一个名为"command"的子键,并将其默认值设置为您的应用程序的可执行文件路径,以及您希望传递给应用程序的参数。例如,"C:\Path\to\your\app.exe %1"。
保存注册表编辑器中的更改,并关闭编辑器。
在您的网页中,使用您的自定义协议链接。例如,<a href="myapp://">打开我的应用</a>。
当用户点击链接时,Chrome 将尝试启动您的应用程序,并将链接作为参数传递给应用程序。请注意,如果用户的计算机上没有安装您的应用程序,或者他们的浏览器没有正确配置自定义协议,那么该链接可能无法正常工作。
请注意,此方法仅适用于 Windows 操作系统。对于其他操作系统,可能需要其他方法来实现自定义协议的支持。
```