以下情况:
在我的webapp中,我的客户正在使用Firefox作为目标浏览器。 他们需要通过Javascript打开afp://文件夹。 长话短说,这真的有用。 您需要使用about:config设置Firefox,并将值network.protocol-handler.external.afp为true。
然后,操作系统(OSX)会处理该path,并正确打开Finder窗口。
问题是 :
OSX每次都创build一个新的挂载。 例如,它不能区分afp://host/path/111和afp://host/path/222 。
此外,即使afppath是100%相同的,也会创build一个新的挂载。 看起来这是OSX的默认行为,无论Firefox如何。
那么,有没有什么机会可以告诉OSX不要为某些应该通过afp://访问的子导向器创build一个新的挂载点?
更新:
看起来,有OSX应用程序可以更改networking协议的默认行为。 因此,您可以更改应用程序OSX应为协议调用的“某处”。 如果这是真的,是不是可以创build一个脚本,只是打开本地path没有afp://前缀?
这里的问题是,在哪里configuration(?)告诉OSX哪个应用程序用于特定的协议。 任何帮助欢迎!
啊,我有一个完全不同的反应,然后找出了这个问题的原因。
这是一个问题的原因是,一旦AFP共享被安装,它本质上是一个本地“卷”。 因此,在本地机器上将其列为本地安装卷。 因此,使用另一个“AFP://”链接将打开一个新的AFP连接到服务器本身。
您可以使用RCDefaultApp来设置应用程序使用给定的URLscheme(在您的情况afp)。 请注意,应用程序应该声明其处理Info.plist文件中的CFBundleURLTypes关键字下的afpscheme的能力。
我同意@Hacha所说的; 你确实用每个afp://调用创build一个新的挂载点,并将其设置为/Volume/mountpoint 。 我不build议每次都调用afp,而是build议通过afp://server/mountpoint打开顶层文件夹,然后使用文件url file:///Volumes/mountpoint来代替。