背景
这些以 Chromium 或 Firefox 为核心的浏览器,为了避免用户电脑上同时安装了核心浏览器和自己时所造成的冲突。它的一些文件的存储位置和核心浏览器是不一样的。而他们又允许用户安装那些可运行在核心浏览器上的扩展,如果这个时候没有兼容好,有些浏览器扩展就无法正常工作,特别是带有『本地程序』的扩展。
MaoXian 的本地程序就是如此,它只认识核心浏览器的目录。以 Chromium 这个核心浏览器为例子,「本地程序」只认识 Chromium 的目录,所以只会把自己安装到 Chromium 目录下。那这些基于 Chromium 的浏览器如果没有做好兼容,就找不到「本地程序」了。
注意: 本页面介绍的安装方法,只适用于那些没有做好兼容(不认识核心浏览器的目录)的浏览器。而那些做好兼容(认识核心浏览器的目录)的浏览器(如 Edge)请按照正常流程进行安装。
详细情况如下表:
可能情况 | 是否适配自身的目录 | 是否适配核心浏览器的目录 | 安装方法 |
---|---|---|---|
情况一 | 是 | 否 | 按本页面教程 |
情况二 | 是 | 是 | 按正常流程 |
情况三 | 否 | 是 | 按正常流程 |
特殊情况: 有一些浏览器在发布的时候,是第一种情况,假设你已经按照本页面的安装方法,对接上了本地程序。 而开发者随后发现兼容问题了,就会去兼容核心浏览器的目录,理想情况下,兼容后会变成情况二,此时你的对接仍然有效。如果浏览器开发者太粗心,改动后,变成情况三,你会发现本来用的好好的本地程序,突然不能用了。那么你需要重新对接,根据本页面的教程,撤销所有改动(即返回到正常流程时使用的脚本),再进行安装。
本地程序的安装本质
本地程序在 Linux 或 MacOS 上的安装,其实只是复制一个 NativeMessageHost 文件(maoxian_web_clipper_native.json) 到一个特定的位置(即目录路径)。
本地程序在 Windows 上的安装,是在一个注册表路径上写入 NativeMessageHost 文件的路径。
下表是 Chromium 上的 NativeMessageHost 文件在不同系统上的安装路径:
系统 | 安装路径 | 备注 |
---|---|---|
MacOS | $HOME/Library/Application Support/Chromium/NativeMessagingHosts | 文件夹路径 |
Linux | $HOME/.config/chromium/NativeMessagingHosts | 文件夹路径 |
Windows | HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts | 注册表路径 |
下表是 Firefox 上的 NativeMessageHost 文件在不同系统上的安装路径:
系统 | 安装路径 | 备注 |
---|---|---|
MacOS | $HOME/Library/Application Support/Mozilla/NativeMessagingHosts | 文件夹路径 |
Linux | $HOME/.mozilla/native-messaging-hosts | 文件夹路径 |
Windows | HKEY_CURRENT_USER\SOFTWARE\Mozilla\NativeMessagingHosts | 注册表路径 |
你可以参照这些安装路径,去寻找你的目标浏览器的安装路径。或者询问你的浏览器开发者,让他们告诉你: NativeMessageHost 文件的安装路径。
基于 Chromium 开发的浏览器
请先按照本地程序首页 上的介绍,下载并解压本地程序。
然后通过修改本地程序脚本的安装路径,适配你要安装的浏览器。
Linux 或 MacOS 用户,需要编辑 variables.sh
这个脚本文件。
编辑 variables.sh
,以 Linux 为例,原内容如下:
#!/usr/bin/env bash
BROWSER_NAME="Chromium"
TARGET_DIR_SYSTEM="/etc/chromium/native-messaging-hosts"
TARGET_DIR_USER="$HOME/.config/chromium/NativeMessagingHosts"
其中:
BROWSER_NAME
为浏览器名字,只用于提示用,不必太在意它的格式(大小写等)TARGET_DIR_SYSTEM
为系统范围的 NativeMessageHost 文件的安装路径。(这个一般不需要修改,因为大部分人的系统平常都只会用到非 root 用户)TARGET_DIR_USER
为当前用户范围 NativeMessageHost 文件的安装路径。(主要改这个)
以 Linux 上的 Thorium 浏览器为例子。其 NativeMessageHosts 目录路径为: ~/.config/thorium/NativeMessagingHosts
。对其进行修改:
#!/usr/bin/env bash
BROWSER_NAME="Thorium"
TARGET_DIR_SYSTEM="/etc/thorium/native-messaging-hosts"
TARGET_DIR_USER="$HOME/.config/thorium/NativeMessagingHosts"
再运行 ./install.sh
既可以安装成功。
Windows 用户 需要编辑 install.bat
和 uninstall.bat
两个批处理文件。
假设你的目标浏览器的目标路径为: HKEY_CURRENT_USER\SOFTWARE\Thorium\NativeMessagingHosts
原 install.bat
的内容:
REG ADD "HKEY_CURRENT_USER\SOFTWARE\Google\Chrome\NativeMessagingHosts\maoxian_web_clipper_native" /ve /t REG_SZ /d "%~dp0manifest.json" /f
ECHO 'Installed, Press any key to exit. . .'
PAUSE
修改为
REG ADD "HKEY_CURRENT_USER\SOFTWARE\Thorium\NativeMessagingHosts\maoxian_web_clipper_native" /ve /t REG_SZ /d "%~dp0manifest.json" /f
ECHO 'Installed, Press any key to exit. . .'
PAUSE
按照同样的方式修改 uninstall.bat
。然后右击 install.bat
以管理员权限运行,即可安装成功。
基于 Firefox 开发的浏览器
请参照上一小节,对 Firefox 的安装路径进行修改。
以 LibreWolf 浏览器为例子。修改完后如下:
MacOS
variables.sh
#!/usr/bin/env bash
BROWSER_NAME="Librewolf"
TARGET_DIR_SYSTEM="/Library/Application Support/Librewolf/NativeMessagingHosts"
TARGET_DIR_USER="$HOME/Library/Application Support/Librewolf/NativeMessagingHosts"
Linux
variables.sh
#!/usr/bin/env bash
BROWSER_NAME="Librewolf"
TARGET_DIR_SYSTEM="/usr/lib64/librewolf/native-messaging-hosts"
TARGET_DIR_USER="$HOME/.librewolf/native-messaging-hosts"
Windows
install.bat
REG ADD "HKEY_CURRENT_USER\SOFTWARE\Librewolf\NativeMessagingHosts\maoxian_web_clipper_native" /ve /t REG_SZ /d "%~dp0manifest.json" /f
ECHO 'Installed, Press any key to exit. . .'
PAUSE
uninstall.bat
REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Librewolf\NativeMessagingHosts\maoxian_web_clipper_native" /f
REG DELETE "HKEY_CURRENT_USER\SOFTWARE\Librewolf\NativeMessagingHosts\maoxian_web_clipper_native" /f
ECHO 'Uninstalled, Press any key to exit. . .'
PAUSE