You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Windows管理器中注册新URL协议并关联应用处理指定协议

这个问题问得很到位!系统处理URL协议的逻辑其实是靠操作系统的关联配置来实现的,不同平台的具体操作方法不一样,我给你分情况拆解清楚:

Windows系统

1. 声明新的URL协议关联程序

咱们得通过修改注册表来实现,步骤很清晰:

  • 打开注册表编辑器:按下Win+R,输入regedit回车
  • 在左侧导航找到HKEY_CLASSES_ROOT,右键新建,命名为你要的协议名(比如myapp
  • 选中刚建的myapp项,设置右侧的默认值URL:MyApp Protocol,然后新建一个字符串值,命名为URL Protocol,值留空即可
  • 继续在myapp下新建子项:shellopencommand,把command项的默认值设为你的程序路径,格式是"C:\Path\To\Your\App.exe" "%1",这里的%1会自动把点击的URL传递给你的程序
  • 测试:在浏览器地址栏输入myapp://test,系统就会调用你的程序并传入这个URL

2. 将应用加入FTP协议的处理列表

同样通过注册表操作:

  • 找到HKEY_CLASSES_ROOT\ftp\shell,右键新建子项yourapp(你的应用标识),再在yourapp下建command子项
  • command的默认值设为你的程序路径加"%1",比如"C:\Path\To\Your\FTPApp.exe" "%1"
  • 之后用户可以通过右键FTP链接选择“打开方式”,就能看到你的应用;如果想设为默认,把HKEY_CLASSES_ROOT\ftp的默认值改成yourapp即可

macOS系统

1. 声明新的URL协议关联程序

macOS靠应用的Info.plist配置文件来识别协议:

  • 如果是打包好的.app程序,右键选择“显示包内容”,打开Contents/Info.plist
  • 添加CFBundleURLTypes数组配置,示例如下:
    <key>CFBundleURLTypes</key>
    <array>
      <dict>
        <key>CFBundleURLName</key>
        <string>My App Custom Protocol</string>
        <key>CFBundleURLSchemes</key>
        <array>
          <string>myapp</string> <!-- 这里填你的协议名 -->
        </array>
      </dict>
    </array>
    
  • 保存后重启应用,系统就会识别这个协议。测试可以用终端命令open myapp://test,或者在浏览器地址栏输入该URL

2. 将应用加入FTP协议的处理列表

有两种方式:

  • 图形界面操作:在浏览器中找到一个FTP链接,右键选择“打开方式”→“其他”,找到你的应用,勾选“始终用此应用打开”
  • 命令行操作:先通过Homebrew安装duti工具(brew install duti),然后执行:
    duti -s com.yourcompany.yourapp ftp public.url
    
    其中com.yourcompany.yourapp是你的应用的Bundle ID,可以在Info.plistCFBundleIdentifier字段找到

Linux系统

Linux桌面环境多样,但核心是通过.desktop配置文件实现,通用度很高:

1. 声明新的URL协议关联程序

  • 创建一个.desktop文件,比如myapp.desktop,放在~/.local/share/applications/(仅当前用户生效)或者/usr/share/applications/(系统全局生效)
  • 文件内容示例:
    [Desktop Entry]
    Name=MyApp
    Exec=/path/to/your/app %u  # %u用于接收URL参数
    Type=Application
    MimeType=x-scheme-handler/myapp;  # 这里填你的协议名
    
  • 更新应用数据库:用户级执行update-desktop-database ~/.local/share/applications/,系统级执行sudo update-desktop-database /usr/share/applications/
  • 测试:用终端命令xdg-open myapp://test,或者在浏览器输入该URL

2. 将应用加入FTP协议的处理列表

  • 修改你的.desktop文件,把MimeType字段加上x-scheme-handler/ftp;,比如:
    MimeType=x-scheme-handler/myapp;x-scheme-handler/ftp;
    
  • 同样更新应用数据库
  • 设置默认:执行xdg-mime default myapp.desktop x-scheme-handler/ftp,或者在桌面环境的“默认应用”设置里找到FTP选项,选择你的应用即可

内容的提问来源于stack exchange,提问作者user277911

火山引擎 最新活动