Protocol Launcher 系列:Microsoft Edge 浏览器唤起的优雅方案

在介绍了 Apple 地图 的联动后,今天我们将介绍如何通过 Protocol Launcher 优雅地唤起 Microsoft Edge 浏览器,让网页打开变得更加简单。

作为开发者,你可能经常遇到这些场景:

  • 在 Electron 应用中点击链接,希望在用户默认的 Edge 浏览器中打开。
  • 从命令行工具生成一个链接,点击后直接在 Edge 中跳转到指定页面。
  • 在内部系统中提供一个按钮,快速在 Edge 中打开外部 URL。

现在,通过 Protocol Launcher ,你可以用类型安全的方式生成 microsoft-edge: 协议链接,无需手动拼接。


Microsoft Edge 与深度链接

Microsoft Edge 是微软基于 Chromium 开发的现代浏览器。它支持通过 microsoft-edge: 协议从其他应用中唤起并打开指定 URL。

然而,手动拼接这些协议链接需要记住正确的格式(如 microsoft-edge:microsoft-edge:?url= 的区别),且缺乏类型提示,容易出错。


核心能力:简洁的浏览器唤起

Protocol Launcher 为 Microsoft Edge 提供了 protocol-launcher/microsoft-edge 模块,支持以下核心功能:

  1. 直接打开浏览器:无需参数,一键唤起 Edge。
  2. 打开指定 URL:在 Edge 中打开任意网页地址。
  3. 类型安全:TypeScript 类型定义确保参数正确。

快速上手

首先,确保你的项目中已安装:

bash 复制代码
npm install protocol-launcher

在代码中你可以根据场景选择两种导入方式:

  • 按需加载(通过子路径导入),支持 Tree Shaking,体积更小;
  • 全量导入(从根包导入),写法更简单,但会引入所有已支持应用的逻辑。
typescript 复制代码
// ✅ 推荐:按需加载 Microsoft Edge 模块
import { open, openUrl } from 'protocol-launcher/microsoft-edge'

// 也可以从根包导入,但会包含所有应用模块
// import { microsoftEdge } from 'protocol-launcher'

场景一:直接打开浏览器 (open)

如果你只是想唤起 Edge 浏览器(不打开特定页面):

typescript 复制代码
import { open } from 'protocol-launcher/microsoft-edge'

const url = open()
// => 'microsoft-edge:'

这个简单的调用会生成 microsoft-edge: 协议链接,点击后将直接打开 Edge 浏览器的新标签页或主页。

场景二:打开指定 URL (openUrl)

如果你想在 Edge 中打开特定的网页:

typescript 复制代码
import { openUrl } from 'protocol-launcher/microsoft-edge'

const url = openUrl({
  url: 'https://www.google.com/',
})
// => 'microsoft-edge:?url=https://www.google.com/'

这个调用会生成完整的协议链接,点击后 Edge 将直接跳转到指定的 URL。


实战演示

在 Electron 应用中使用

假设你正在开发一个 Electron 应用,希望用户在点击链接时用 Edge 打开:

typescript 复制代码
import { openUrl } from 'protocol-launcher/microsoft-edge'
import { shell } from 'electron'

function openInEdge(url: string) {
  const edgeUrl = openUrl({ url })
  shell.openExternal(edgeUrl)
}

// 使用示例
openInEdge('https://github.com/zhensherlock/protocol-launcher')

在命令行工具中使用

如果你开发了一个 CLI 工具,想让用户快速在 Edge 中查看文档:

typescript 复制代码
import { openUrl } from 'protocol-launcher/microsoft-edge'
import { exec } from 'child_process'

function openDocs() {
  const edgeUrl = openUrl({ url: 'https://protocol-launcher.huayi-data.com/' })
  exec(`open "${edgeUrl}"`) // macOS
  // exec(`start "${edgeUrl}"`) // Windows
}

为什么选择 Protocol Launcher?

  1. 类型安全与参数提示:TypeScript 的智能补全会确保你提供了正确的参数,避免拼写错误。
  2. 一致的 API 设计:所有应用的协议生成都遵循相同的模式,学习成本低。
  3. 极简的按需加载 (Tree Shaking) :采用了模块化设计,支持按需加载以最小化包体积:
    • 推荐方式 :使用子路径导入(如 import { openUrl } from 'protocol-launcher/microsoft-edge'),这样构建工具只会打包相关的代码。
    • 全量方式 :也可以从根包导入(如 import { microsoftEdge } from 'protocol-launcher'),建议生产环境始终使用按需加载。
  4. 跨平台兼容:生成的协议链接在所有支持 Edge 的平台上都能正常工作。

结语

通过 Protocol Launcher,你可以用优雅的类型安全方式唤起 Microsoft Edge 浏览器。无论是桌面应用、命令行工具还是 Web 应用,它都是连接你的程序与 Edge 浏览器的最佳桥梁。


🔗 相关链接

相关推荐
kyriewen1 小时前
你还在手动敲命令部署?GitHub Actions 让你 push 即上线,摸鱼时间翻倍
前端·面试·github
xuankuxiaoyao3 小时前
Vue.js实践-组件基础下
前端·javascript·vue.js
小白学大数据3 小时前
JS 混淆加密下的 Python 爬虫解决方案
javascript·爬虫·python
大家的林语冰4 小时前
前端周刊:axios 疑遭朝鲜黑客“钓鱼“;CSS 新函数上线;npm 上线深色主题;Oxlint 兼容表;ESLint 支持 Temporal......
前端·javascript·css
求索实验室6 小时前
让AI真正"看见"界面:纯视觉GUI自动化编排器开源了
github·agent
竹林8186 小时前
用ethers.js连接MetaMask实现Web3钱包登录:从踩坑到稳定运行的完整记录
前端·javascript
心连欣6 小时前
从零开始,学习所有指令!
前端·javascript·vue.js
郑寿昌8 小时前
AI Agent 2026:从对话到行动的跃迁
人工智能·microsoft·数据挖掘
openKaka_8 小时前
从 scheduleUpdateOnFiber 到 Root 微任务调度:React 如何把更新交给调度系统
开发语言·前端·javascript
梦梦代码精8 小时前
《企业开源商城选型:商业闭环、二次开发与成本平衡》
java·开发语言·低代码·开源·github