Spec-Zone .ru
спецификации, руководства, описания, API
|
Эта глава включает следующие темы:
Обнаружение, если Веб-Запуск Java устанавливается на Netscape
Обнаруживая, если Веб-Запуск Java устанавливается на IE, и если так, номер версии
Следующая информация предшествует введению сценария Инструментария Развертывания в Java SE 6 обновлений 10 выпусков.
См. Java Богатый Совет Развертывания Интернет-приложений для информации об использовании сценария Инструментария Развертывания.
Для приложения, которое будет запущено от веб-страницы через JNLP, страница должна включать ссылку к файлу JNLP. Например, чтобы быть в состоянии запустить приложение app.jnlp
на веб-сайте http://www.MySite.com
, страница должна включать ссылку:
<a href=http://www.MySite.com/app.jnlp>Launch the application</a>
Это может иметь место, однако, что Веб-Запуск Java не устанавливается на компьютере пользователя. Таким образом страница должна включать логику (сценарии), чтобы принять во внимание это. Фактически, страница должна включать логику для следующего:
Обнаружьте, если Веб-Запуск Java устанавливается
Если так, запустите приложение.
В противном случае обнаружьте, если пользователь выполняет IE на Окне.
Если так, обеспечьте ссылку к странице, которая может автоустановить JRE для Windows
В противном случае обеспечьте ссылку к общей странице загрузки для JDK/JRE.
Сценарии, и HTML для страницы автоустановки, обсуждаются ниже.
Вот первый сценарий, который должен быть выполнен на веб-странице для того, чтобы запуск приложение через JNLP:
<SCRIPT LANGUAGE="JavaScript"> var javawsInstalled = 0; var javaws142Installed=0; var javaws150Installed=0; var javaws160Installed = 0; isIE = "false"; if (navigator.mimeTypes && navigator.mimeTypes.length) { x = navigator.mimeTypes['application/x-java-jnlp-file']; if (x) { javawsInstalled = 1; javaws142Installed=1; javaws150Installed=1; javaws160Installed = 1; } } else { isIE = "true"; } </SCRIPT>
Этот сценарий смотрит на navigator.mimeTypes
возразите и navigator.mimeTypes.length
var, чтобы решить, является ли браузером Netscape или IE. Если length
0, предполагается, что браузер является IE, как с IE navigator.mimeTypes
массив определяется, но всегда пустой. Если длина является ненулевой, то браузером, как предполагается, является Netscape, и тип MIME JNLP проверяется, чтобы видеть, существует ли это на Netscape. Если так, javawsInstalled
, javaws142Installed
, javaws150Installed
и javaws160Installed
все устанавливаются в 1. С Netscape не возможно определить, какая определенная версия Веб-Запуска Java устанавливается, таким образом, все четыре переменные устанавливаются в 1.
Вышеупомянутый JavaScript должен сопровождаться VBScript, который устанавливает переменные, связанные с Internet Explorer browers:
<SCRIPT LANGUAGE="VBScript"> on error resume next If isIE = "true" Then If Not(IsObject(CreateObject("JavaWebStart.isInstalled"))) Then javawsInstalled = 0 Else javawsInstalled = 1 End If If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.4.2.0"))) Then javaws142Installed = 0 Else javaws142Installed = 1 End If If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.5.0.0"))) Then javaws150Installed = 0 Else javaws150Installed = 1 End If If Not(IsObject(CreateObject("JavaWebStart.isInstalled.1.6.0.0"))) Then javaws160Installed = 0 Else javaws160Installed = 1 End If End If </SCRIPT>
Этот VBScript выполняется, если переменным isIE от preceeding JavaScript является "true"; то есть, если браузером конечного пользователя является Internet Explorer. Этот сценарий инстанцирует isInstalled
COM-объект в JavaWebStart.dll, и этот объект определяют четыре вещи:
есть ли у клиентской машины какая-либо версия Сети Java, Запускаются установленный;
есть ли у клиентской машины версия 1.2 Сети Java, Запускаются установленный;
есть ли у клиентской машины версии, 1.4.2 из Сети Java Запускаются установленный;
есть ли у клиентской машины версии, 1.5.0 из Сети Java Запускаются установленный.
есть ли у клиентской машины версии, 1.6.0 из Сети Java Запускаются установленный.
После того, как вышеупомянутые два сценария были выполнены, переменные javawsInstalled, javaws142Installed
, javawsInstalled150
и javawsInstalled160
будет установлен или в 1 или в 0, следующим образом:
Браузер |
|
|
|
|
---|---|---|---|---|
Internet Explorer |
1, если какая-либо версия Веб-Запуска Java устанавливается; 0 иначе. |
1, если Сеть Java Запускается 1.4.2, устанавливается; 0 иначе. |
1, если Сеть Java Запускается 1.5.0, устанавливается; 0 иначе. |
1, если Сеть Java Запускается 1.6.0, устанавливается; 0 иначе. |
Навигатор Netscape |
1, если какая-либо версия Веб-Запуска Java устанавливается; 0 иначе. |
1, если какая-либо версия Веб-Запуска Java устанавливается; 0 иначе. |
1, если какая-либо версия Веб-Запуска Java устанавливается; 0 иначе. |
1, если какая-либо версия Веб-Запуска Java устанавливается; 0 иначе. |
Дополнительный JavaScript может использоваться, чтобы решить ли к:
обеспечьте ссылку к jnlp файлу приложения (то есть, Веб-Запуск Java устанавливается);
начатая автозагрузка JRE 6.0, который включает Сеть Java, Запускается (то есть, Веб-Запуск Java не устанавливается, и пользователь выполняет IE на Windows);
или обеспечьте ссылку к общей странице загрузки для 6.0 JDK/JRE (то есть, Веб-Запуск Java не устанавливается, и пользователь не выполняет IE на Windows).
Следующий JavaScript обрабатывает эти сценарии:
<script language="JavaScript"> /* Note that the logic below always launches the JNLP application *if the browser is Gecko based. This is because it is not possible *to detect MIME type application/x-java-jnlp-file on Gecko-based browsers. */ if (javawsInstalled || (navigator.userAgent.indexOf("Gecko") !=-1)) { document.write("<a href=http://www.MySite.com/app.jnlp>Launch the application</a>"); } else { document.write("Click "); document.write("<a href=http://java.sun.com/PluginBrowserCheck? pass=http://www.MySite.com/download.html& fail=http://java.sun.com/javase/downloads/ea.jsp>here</a> "); document.write("to download and install JRE 5.0 and the application."); } </SCRIPT>
Примечания:
Сценарий только использует javawsInstalled
— нет javaws142Installed
или javaws150Installed
или javaws160Installed
.
Разрывы строки после'?
'и'&
'в целях удобочитаемости только; в фактическом сценарии не должно быть никаких перерывов href
строка.
Если javawsInstalled 1, указывая, что Веб-Запуск Java уже доступен на клиенте, то сценарий обеспечивает ссылку к приложению jnlp
файл. Если Веб-Запуск Java не устанавливается на клиенте, сценарий вместо этого обеспечивает ссылку к PluginBrowserCheck
программа на java.sun.com
веб-сайт. PluginBrowserCheck
проверки, использует ли клиент Internet Explorer на платформе Microsoft Windows. Если так, PluginBrowserCheck
отправляет пользователю странице автоустановки http://www.MySite.com/download.html. (См. следующий раздел, Создавая страницу автоустановки, для того, как создать страницу автоустановки для IE, работающего на Windows.), Если PluginBrowserCheck
решает, что пользователь не использует Internet Explorer на Microsoft Windows, пользователь перенаправляется к 6.0 общим страницам загрузки JRE на java.sun.com
.
Файл download.html должен быть подготовлен на стороне сервера. Это содержит специальный OBJECT и теги PARAM, которые загрузят на клиент автоустановщик для JRE 6.0. Наряду с Java Запускается Сеть, элемент управления ActiveX будет загружен на клиент. Элемент управления ActiveX запустится, приложение, используя недавно установленную Сеть Java Запускаются. Вот демонстрационный файл download.html:
<HTML> <BODY> <OBJECT codebase="http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab#Version=6,0,0,0" classid="clsid:5852F5ED-8BF4-11D4-A245-0080C6F74284" height=0 width=0> <PARAM name="app" value="http://www.MySite.com/app.jnlp"> <PARAM name="back" value="true"> <!-- Alternate HTML for browsers which cannot instantiate the object --> <A href="http://java.sun.com/javase/downloads/ea.jsp"> Download Java Web Start</A> </OBJECT> </BODY> </HTML>
Тег OBJECT выбирает a .cab
файл, который содержит автоустановщик для JRE 6.0.
URL:
http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab
возвратит последний выпуск обновления, доступный для Java SE 6 выпусков.
Строка: Version=6,0,0,0 будет использоваться, чтобы сравниться с wsdetect.dll версия, которая регистрируется в CLSID выше. Если локальной машине установят dll, и версия больше чем или равна определенной Версии, то мы только загрузим dll в локальной машине. Иначе это загрузит и установит Java от определенной кодовой базы.
Теги PARAM определяют расположение приложения jnlp
файл так, чтобы это могло быть автоматически запущено после JRE, устанавливается на клиенте.
app
: Однажды Сеть Java Запускаются, Элемент управления ActiveX устанавливается/загружается, это вызовет Сеть Java, Начинают запускать приложение, определенное этим URL.
back
: Это управляет поведением браузера после запуска приложения. Это может остаться на текущей странице (download.html в этом случае) или переместиться назад к предыдущей странице.
Для проблем, касающихся разработки приложений, см. следующую главу, Соображения Разработки приложений.