以下场景:
在我的 Web 应用中,我的客户使用 Firefox 作为目标浏览器。他们需要afp://
通过 Javascript 打开文件夹。长话短说,这确实有效。您需要设置 Firefox 并将about:config
值设置network.protocol-handler.external.afp
为 true。
然后会发生什么呢?操作系统(OSX)会处理该路径并正确打开一个Finder
窗口。
问题:
OSX 每次都会创建新的挂载。例如,它无法区分afp://host/path/111
和。 此外,即使 afp 路径 100% 相同,也会创建新的挂载。看起来这是 OSX 的默认行为,无论 Firefox 如何。afp://host/path/222
那么,我是否可以告诉 OSX 不要为一些应该获得访问权限的子目录创建新的挂载afp://
?
更新:
看起来,有些 OSX 应用程序可以更改网络协议的默认行为。因此,您可以在“某处”更改 OSX 应调用哪个应用程序来获取协议。如果这是真的,那么是否可以创建一个只打开本地路径而不带前缀的脚本afp://
?
这里的问题是,该配置在哪里(?)来告诉 OSX 针对特定协议使用哪个应用程序。欢迎任何帮助!
答案1
啊,我想出了一个完全不同的解决办法,并弄清楚了为什么会出现这个问题。
之所以会出现问题,是因为一旦安装了 AFP 共享,它本质上就是一个本地“卷”。因此,将其列为该机器本地安装的卷。因此,使用任何类型的另一个“AFP://”链接都会打开与服务器本身的新 AFP 连接。
答案2
您可以使用RC默认应用设置应用程序使用给定的 URL 方案(在您的例子中为 afp)。请注意,应用程序可能应该在其 Info.plist 文件中的 CFBundleURLTypes 键下声明其处理 afp 方案的能力。
答案3
我同意 @Hacha 所说的;你确实在每次afp://
调用时都会创建一个新的挂载点,并将其设为/Volume/mountpoint
。我建议不要每次都调用 afp,而是打开顶部文件夹一次通过afp://server/mountpoint
,然后使用文件 urlfile:///Volumes/mountpoint
代替。