【问题标题】:Launch Chrome Extension from Mac Dock从 Mac Dock 启动 Chrome 扩展程序
【发布时间】:2016-09-25 04:43:58
【问题描述】:

是否可以在 Mac Dock 中为我正在开发的 chrome 扩展添加一个图标。

这里的扩展代码仅供参考。 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
   }
}

背景.js:

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

【问题讨论】:

    标签: macos google-chrome google-chrome-extension shortcut


    【解决方案1】:

    没有与扩展坞交互的 API。所以,不容易。

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

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

      请注意,不能使用指向 Chrome 扩展程序页面的链接来回避 webRequest 要求:如果您尝试通过快捷方式打开这些链接,由于 chrome-extension:// 页面的权限已提升,这些链接可能会被忽略。

    2. 编写一个配套的原生应用程序并使用Native Messaging API 处理所有常见的后果。

      并发症:Chrome 只能启动 Native Messaging,你不能启动一个应用来告诉 Chrome 一些事情;因此,当您单击停靠图标时,必须已经启动了一些常驻组件。

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

    【讨论】:

    • 感谢您提供如此详细的回答。