从 Mac Dock 启动 Chrome 扩展

Launch Chrome Extension from Mac Dock

是否可以在我正在处理的 chrome 扩展程序的 Mac 停靠栏中放置一个图标。

这里是扩展代码,仅供参考。 manifest.json:

{
   "manifest_version": 2,

   "name": "Habitica",
   "author": "Sam Dale",
   "description": "A launcher to quickly get to Habitica. Especially great for Mac users.",
   "version": "1.0",
   "icons": {"16": "habitica-logo-16.png", "128": "habitica-logo-128.png", "300": "habitica-logo-300.png"},

   "browser_action": {
      "default_icon": "habitica-logo-128.png",
      "default_title": "Habitica"
   },
   "background": {
      "scripts": ["background.js"],
      "persistent": false
   }
}

background.js:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.create({ url: "https://habitica.com/#/tasks" });
});

没有 API 与扩展坞交互。所以,没有简单的方法。

我可以想到几种复杂的方法,但总的来说我建议避免这种想法。

  1. 可以添加一个快捷方式到一个不存在的网页,比如说,https://launch-my-awesome-extension.horse/,然后用webRequest API拦截它。

    请注意,不能使用 link 到 Chrome 扩展页面来回避 webRequest 要求:如果您这样做,这样的 link 可能会被忽略由于 chrome-extension:// 页面的特权提升,请尝试通过快捷方式打开它们。

  2. 编写一个配套的本机应用程序并使用 Native Messaging API 所有通常的结果。

    并发症:Chrome 只能启动本机消息,您无法启动应用程序来告诉 Chrome 某些事情;所以当你点击停靠图标时,一定有一些常驻组件已经启动。

两者都很麻烦,并不是一个好主意。