安装并运行JNLP应用程序后,是否可以在浏览器中通过javascript使用navigator.mimeTypes来检测预期的mime类型?在OSX上使用Chrome时,我们注意到mime类型没有出现在导航器列表中。
var isSupported = navigator.mimeTypes['application/x-my-own-app'];
这是通过JNLP注册的,如下:
IntegrationService is = null;
try {
is = (IntegrationService) ServiceManager.lookup("javax.jnlp.IntegrationService");
if (!is.hasAssociation("application/x-my-own-app", new String[] { "myownapp", "moa" })) {
if (!is.requestAssociation("application/x-my-own-app", new String[] { "myownapp", "moa" })) {
System.err.println("Association creation failed");
}
}
} catch (UnavailableServiceException use) {
System.err.println("Integration service unavailable");
}
如果出于某种原因无法在浏览器中访问已注册的mime类型,是否还有其他方法可以获得注册?
修改
过程如下:
随后的访问:
答案 0 :(得分:0)
使用IntegrationService.hasAssociation(String,String[])
。
这样就可以确定应用程序已经安装,我们不需要将用户定向到.jnlp文件,而是指向.moa或.myownapp项目。
使用(轻,小)基于JNLP的小程序在浏览器中进行检测。
答案 1 :(得分:0)
不幸的是,JNLP执行的注册是在操作系统中完成的,而不是在浏览器中完成的。因此导航器无法提供我使用所需的注册。