Creating the Web Page That Lauches the Application
Documentation Contents
Creating the Web Page That Launches the Application
This chapter includes the following topics:
Introduction
Detecting if
Java Web Start is installed on Netscape
Detecting if Java
Web Start is installed on IE, and if so, the version number
Launching the
application if Java Web Start is Installed—or providing a link
for auto-install or general download page
Creating an auto-install page
Introduction
The following information predates the introduction of the Deployment Toolkit script in the Java SE 6 update 10 release.
See Java Rich Internet Applications Deployment Advice
for information about using the Deployment Toolkit script.
In order for an application to be launched from a web page via
JNLP, the page must include a link to the JNLP file. E.g., to be able
to launch application app.jnlp on a web site
http://www.MySite.com, the page needs to include the
following link:
<a href=http://www.MySite.com/app.jnlp>Launch
the application</a>
It may be the case, however, that Java Web Start is not installed
on the user's computer. Thus the page needs to include logic
(scripts) to take account of this. In fact, the page should include
logic for the following:
Detect if Java Web Start is installed
If so, launch the application.
If not, detect if user is running
IE on Window.
If so, provide link to a page
that can auto-install the JRE for Windows
If not, provide a link to the general download page for the
JDK/JRE.
The scripts, and the HTML for the auto-install page, are discussed
below.
Detecting if Java Web Start is installed
on Netscape
Here is the first script that should be run on a web page for
launching an application via 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>
This script looks at the navigator.mimeTypes object and
the navigator.mimeTypes.length var to decide if the
browser is Netscape or IE. If length is 0, it is assumed
the browser is IE, as with IE the navigator.mimeTypes
array is defined but always empty. If length is non-zero, then the
browser is assumed to be Netscape and the JNLP MIME type is checked
to see if it exists on Netscape. If so, javawsInstalled,
javaws142Installed, javaws150Installed and
javaws160Installed are all set to 1. With Netscape it is
not possible to determine which particular version of Java Web Start
is installed, so all four variables are set to 1.
Detecting if JavaWeb Start is installed on IE,
and if so, the version
The above JavaScript should be followed by a VBScript that sets
variables related to 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>
This VBScript is executed if the variable isIE from the
preceeding JavaScript is "true"; i.e., if the
end-user's browser is Internet Explorer. This script instantiates the
isInstalled COM object in JavaWebStart.dll, and
this object determines four things:
whether the client machine has any
version of Java Web Start installed;
whether the client machine has
version 1.2 of Java Web Start installed;
whether the client machine has
versions 1.4.2 of Java Web Start installed;
whether the client machine has
versions 1.5.0 of Java Web Start installed.
whether the client machine has versions 1.6.0 of Java Web
Start installed.
After the above two scripts have been executed, the variables
javawsInstalled, javaws142Installed,
javawsInstalled150 and javawsInstalled160
will be set to either 1 or 0, as follows:
Browser
javawsInstalled
javaws142Installed
javaws150Installed
javaws160Installed
Internet Explorer
1 if any version of Java Web Start is installed; 0 otherwise.
1 if Java Web Start 1.4.2 is installed; 0 otherwise.
1 if Java Web Start 1.5.0 is installed; 0 otherwise.
1 if Java Web Start 1.6.0 is installed; 0 otherwise.
Netscape Navigator
1 if any version of Java Web Start is installed; 0 otherwise.
1 if any version of Java Web Start is installed; 0 otherwise.
1 if any version of Java Web Start is installed; 0 otherwise.
1 if any version of Java Web Start is installed; 0 otherwise.
Launching the application if Java Web
Start is Installed—or providing a link for auto-install or
general download page
An additional JavaScript can be used to decide whether to:
provide a link to the
application's jnlp file (i.e., Java Web Start is installed);
initiate auto-download of JRE 6.0,
which includes Java Web Start (i.e., Java Web Start is not installed
and the user is running IE on Windows);
or provide a link to the general download page for the 6.0
JDK/JRE (i.e., Java Web Start is not installed and the user is not
running IE on Windows).
The following JavaScript handles these scenarios:
<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>
Notes:
The script only uses
javawsInstalled—not javaws142Installed
or javaws150Installed or javaws160Installed.
The line breaks following '?' and '&'
are for readability purposes only; in an actual script there
should be no breaks in the href string.
If javawsInstalled is 1, indicating that Java Web Start
is already available on the client, then the script provides a link
to the application's jnlp file. If Java Web Start is not
installed on the client, the script instead provides a link to the
PluginBrowserCheck program on the java.sun.com
web site. PluginBrowserCheck checks whether the client
uses Internet Explorer on a Microsoft Windows platform. If so,
PluginBrowserCheck sends the user to the auto-install
page http://www.MySite.com/download.html. (See the next
section, Creating an auto-install page, for
how to create an auto-install page for IE running on Windows.) If
PluginBrowserCheck determines the user is not using
Internet Explorer on Microsoft Windows, the user is redirected to the
6.0 JRE general download page on java.sun.com.
Creating an auto-install page
The download.html file should be staged on the server
side. It contains special OBJECT and PARAM tags
that will download to the client an auto-installer for JRE 6.0 .
Along with Java Web Start, an ActiveX control
will be downloaded to the client. The ActiveX control will launch the
application using the newly installed Java Web Start. Here is a
sample download.html file:
<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>
The OBJECT tag fetches a .cab file that
contains an auto-installer for JRE 6.0.
The
URL: http://java.sun.com/update/1.6.0/jinstall-6-windows-i586.cab
will return the latest update release available for the Java SE 6
release.
The
string: Version=6,0,0,0 will be used to compare with the
wsdetect.dll version, which is registered with the CLSID above. If
the local machine has the dll installed and the version is greater
than or equal to the Version specified, we will just load the dll in
the local machine. Otherwise it will download and install Java from
the codebase specified.
The PARAM tags specify the location of the
application's jnlp file so that it may be automatically
launched after the JRE is installed on the client.
app:
Once the Java Web Start Active-X control is installed/loaded, it will
invoke Java Web Start to launch the application specified by this
URL.
back:
This controls the behavior of the browser after launching the
application. It can remain on the current page (download.html in this
case) or navigate back to the previous page.
For issues relating to application development see the next
chapter, Application Development
Considerations.
Copyright © 1995-2010 Sun Microsystems, Inc. All Rights Reserved. Please send comments using this Feedback page.
Java Technology
Wyszukiwarka
Podobne podstrony:
AviScreen Portable launcher licensekey launcherlaunch x 431launch?velopment processm0A61B6Behaviour of a Working Fluid in an Electrothermal Launcher Chamberlauncherlaunch dateInstrukcja obsługi Launch Creader Vlaunch cresetter oillaunch?velopment process?C4847Dlaunch creader cr hd heavy duty code scanner introductionx launcher changelog enlaunchcontentswięcej podobnych podstron