如何在主流浏览器中将自定义MIME类型与本地应用程序关联?

12

我想发明一种新的MIME类型,并将其与浏览器中的自定义应用程序关联,以便用户可以从网页启动我的应用程序。我安全网站的用户处于封闭环境中,这意味着这不是一个通用的主流应用程序 - 我可以事先配置他们的浏览器。

Spoon.net通过使用其迷你内核插件启动虚拟化应用程序来执行类似的操作。

其中一个回答提到了这种方法,但没有详细说明如何实现。

如何在Chrome和IE 8/9上以跨平台方式实现这一点?是否有一种通过浏览器扩展(本地或通过crossrider)进行mime类型关联的方法?Adobe Reader或Apple Quicktime之类的应用程序是如何实现的?如果可能的话,我希望避免触及注册表。

这种方法存在什么风险?我的网站是受证书保护并受用户信任的内部网应用程序。有什么理由不选择这条路吗?

编辑:显然,可以通过操纵mimeTypes.rdf文件在Firefox中实现此功能。

编辑:看起来JDIC是一个基于Java的机制,可以用于相同的操作。是否有类似的非Java构造?也许是Javascript?


1
我对此不是很了解,但我见过一些应用程序使用自定义的URL方案,例如Skype的callto:。这可能是一个更简单的选择? - grapefrukt
是的,根据我链接的问题,看起来那是一种定制协议,需要在跟随该URL时运行相关应用程序。我希望避免这种情况,而是让浏览器/扩展程序识别MIME类型并启动应用程序。如果可能的话,我正在尝试最小化客户端安装和资源使用。不过,这是个好建议! - retrodrone
关于注册协议的信息可以在这里找到:http://kb.mozillazine.org/Register_protocol。这可能是我要走的路线,但我真的很想知道如何使用自定义 MIME 类型来完成它。 - retrodrone
2个回答

13

看起来可以通过在Windows上进行注册表更改来完成。

[HKEY_CLASSES_ROOT\.atom]
    @="atom_file"

[HKEY_CLASSES_ROOT\atom_file]
    @="Atom Syndication Program"

[HKEY_CLASSES_ROOT\atom_file\shell]

[HKEY_CLASSES_ROOT\atom_file\shell\open]

[HKEY_CLASSES_ROOT\atom_file\shell\open\command]
    @="\"C:\\AtomHandler\\handle.exe\" %1"

[HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/atom+xml]
    "Extension"=".atom"

点击此处了解 Windows 的更多信息...

而这是如何在 Linux 上进行的

freedesktop.org Portland使用 xdg-utils。


1
我经常希望将新的文件类型与文本文件相关联。最安全、最快捷的方法是:
A. 如果该文件类型不存在,则在注册表中创建该文件类型
  • Windows -> 搜索RegistryEditor -> 打开
  • 右键单击HKEY_CLASSES_ROOT -> 新建 -> 键
  • 将键命名为与扩展名相同 (例如 .txttt)
  • 点击新创建的键 (例如 HKEY_CLASSES_ROOT -> .txttt) -> 右键单击右侧窗格中的(Default) -> 修改 -> 设置为以下值:

(Default) REGSZ txtfile

  • 右键单击新创建的键 (例如 HKEY_CLASSES_ROOT -> .txttt) -> 新建 -> 字符串值 -> 设置为以下值:

ContentType REG_SZ text/plain

  • 右键点击新创建的键(例如HKEY_CLASSES_ROOT -> .txttt)-> 新建 -> 字符串 -> 设置以下值:

PerceivedType REG_SZ text

B. 将文件类型与默认程序关联

  • 右键单击您的文件 -> 打开方式 -> 选择其他应用程序
  • 勾选“始终使用此程序打开”
  • 选择默认程序

新文件类型应在Windows资源管理器中使用您选择的默认文本编辑器程序打开和预览。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接