您知道像 https:
这样的东西吗? 这就是一个 **URL 方案**。 您可能已经熟悉这个概念,这要归功于前端开发中出现的其他方案,例如 mailto:
。 您实际上可以 创建自己的方案,这很酷。 还有 很多 方案。
我发现自定义 URL 方案在既是 Web 应用又是原生应用的应用中最为常见。 例如,我几乎每天都使用的两个应用:Notion 和 Figma。 我 *喜欢* 我在这些应用中处理的事物有 URL。 一切都有 URL! 🎉
然而。 当我获取 Notion 页面 URL 时,我会定期这样做以与同事分享,我得到的 URL 就像这样...
https://www.notion.so/csstricks/...
这很好,并且可以打开浏览器中的 Notion 页面。 但我更喜欢 Notion 原生应用。 它是 Electron,所以它仍然是一个 Web 应用,但我不是从 Web 浏览器中使用它,而是从我实际机器上的 Notion.app
应用中使用它。
Geoff 前几天与我分享了一篇文章,文章中记录了让应用的浏览器 URL 在原生应用中打开有多容易
幸运的是,Notion 的开发团队考虑到了这一点,并构建了
Thomas Frank,“如何在应用中直接打开 Notion 链接”notion://
链接协议。 如果您将任何 Notion 页面链接的https://
部分替换为notion://
,您的链接将自动在原生应用中打开,而不是在 Web 浏览器中。
原生方案与 Web 方案本质上相同,除了名称。 Thomas 对此进行了深入的探讨,介绍了更改剪贴板内容以将 Notion 链接替换为自定义方案的方法。
我只想指出我认为对我来说很有效的方法。 诀窍不是更改链接本身,而是通过重定向将您知道是 Notion 链接的链接打开到 Notion.app
中。
在 Mac 上,诀窍是 Choosy

我更喜欢设置 Choosy,这样它永远不会问我使用哪个浏览器,而是根据规则执行。 因此,在设置中,我设置了许多应用

对于 Notion,我监视指向 Notion 的链接,并让它打开 Notion... 就这样!

其他应用基本上执行相同的操作。 效果很好。
不过要记住一点! 间或我会需要到这里来关闭某些应用。 例如,密码重置流程可能会将我发送到 slack.com
或其他地方,用于流程中仅可通过 Web 访问的特定页面。 如果 Choosy 正在运行,它会尝试强制该页面在 Slack.app
中打开,但它不会打开,您可能会陷入困境。 所以,我需要到这里来临时关闭它。
新的 Chromium Edge 有一个这样的协议 -
microsoft-edge:
,它将在 Edge 窗口中打开一个链接。这很有用,因为现在 IE11 即将停止使用,Edge 是一个可行的替代方案,您可以检查浏览器是否正在运行 IE 11,然后自动在 Edge 中打开页面,在那里它将得到正确支持。 这是一个可以做到这一点的小片段。
当 IE 11 处理 YouTube、Facebook 或其他大型网站时,它已经表现得类似于此(如果您仍然有 IE 11,请尝试在该浏览器中加载其中一个网站。 我仍然会谨慎使用以下方法,因为我不确定这是否适合在生产环境中使用,尽管如果浏览器已经在本地执行类似的操作,那么它可能没问题。
您可以在控制台中为 Firefox 创建新的 URL 方案,但它需要是 web+yourscheme
https://mdn.org.cn/en-US/docs/Web/API/Navigator/registerProtocolHandler
然后,您可以在 about:preferences > Applications 中设置方案以打开您想要的任何应用。
您也可以修改现有的 URL 方案。 例如:我修改了 “tel:” 以在 Whatsapp 网页中打开电话号码,如下所示:https://web.whatsapp.com/send?phone=%s
这样,我可以输入 tel:99999999 并向一个号码发送消息,甚至不需要将该联系人添加到我的电话簿中。