|
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 в этом случае) или переместиться назад к предыдущей странице.
Для проблем, касающихся разработки приложений, см. следующую главу, Соображения Разработки приложений.