macOS Sonoma Dock Web Apps:如何将指定URL重定向至Dock应用?
解决macOS Sonoma Dock Apps 链接重定向问题
方法1:利用Dock App内置关联设置(推荐)
macOS Sonoma的Dock Apps基于Safari容器实现,自带域名关联功能:
- 打开你的目标Dock App,点击顶部菜单栏的「应用名称 > 设置」
- 在设置窗口切换到高级标签页
- 勾选「将此网站设为打开[目标域名]链接的默认应用」
- 完成设置后,系统会自动把该域名的所有链接定向到Dock App,无需额外工具
方法2:用AppleScript自定义链接处理逻辑
如果需要适配多子域名或复杂规则,可通过脚本编辑器实现:
- 打开「脚本编辑器」(Launchpad > 其他 > 脚本编辑器)
- 粘贴以下代码,替换
YOUR_DOCK_APP_NAME为你的Dock App名称,YOUR_TARGET_DOMAIN为目标域名:
on open location theURL if theURL contains "YOUR_TARGET_DOMAIN" then tell application "YOUR_DOCK_APP_NAME" activate open location theURL end tell else tell application "Safari" activate open location theURL end tell end if end open location
- 点击「文件 > 导出」,格式选择应用程序,勾选「仅运行」,保存为
LinkRedirector.app - 打开「系统设置 > 桌面与 Dock > 文件与链接 > 链接」,将
LinkRedirector.app设为http/https链接的默认应用
方法3:终端修改系统URL关联配置(进阶)
通过终端直接修改LaunchServices配置,强制绑定域名与Dock App:
- 先获取Dock App的Bundle ID:右键Dock App > 显示包内容 > Contents > Info.plist,查找
CFBundleIdentifier字段值 - 打开终端,执行以下命令(替换
BUNDLE_ID和TARGET_DOMAIN为实际值):
defaults write com.apple.LaunchServices/com.apple.launchservices.secure LSHandlers -array-add '{LSHandlerURLScheme = "https"; LSHandlerRoleAll = "BUNDLE_ID"; LSHandlerURLPattern = "*TARGET_DOMAIN*";}'
- 刷新LaunchServices生效:
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -r -domain local -domain system -domain user
内容的提问来源于stack exchange,提问作者hocker
相关产品推荐
相关产品推荐

