Domando a los Applets en los diferentes browsers


Desde que he estado trabajando con la implementación de Firma Digital en varios sistemas donde laboro, que tenido que lidiar con el comportamiento esporádico de los applets en los diferentes browsers. El que más me ha dado batalla ha sido el tan amado y respetado Firefox 3.6.
Veamos el código para insertar applets y que sean visibles en la mayoría de los browsers (Firefox, IE, Opera, Chrome, Safari). En este caso tengo el applet dentro de .jar :

<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
	codebase="http://java.sun.com/products/plugin/autodl/jinstall-1_4-windows-i586.cab#Version=1,4,0,0"
	width="500" height="250" mayscript="true">
	<param name="type" value="application/x-java-applet;version=1.4">
	<param name="code" value="PAQUETE/CLASE_APPLET">
	<param name="archive" value="APPLET.jar">
	<param name="mayscript" value="true">
	<param name="scriptable" value="true">
	<param name="ubicacionApplet" value="/">
        <comment>
	  <embed type="application/x-java-applet;version=1.4"
		pluginspage="http://java.sun.com/products/plugin/index.html#download"
		code="PAQUETE/CLASE_APPLET"
		archive="APPLET.jar" width="420" height="180"
		mayscript="true" scriptable="true" ubicacionApplet="/">
          <noembed> El applet no puede ser ejecutado, se requiere tener instalado java JRE 1.6 como mínimo </noembed>
          </embed>
       </comment>

</object>

Este código es suficiente para funcionar con cualquier navegador. La etiqueta param funciona para enviarle parámetros al applet. Por lo que podemos enviar variables estáticas a nuestros applets. Personalmente lo utilizo para enviarle la ruta de donde se encuentra, para gestionar url para imágenes o servlets.

En el parámetro code se debe colocar el nombre de la clase que contiene el código del applet. Si esta clase se encuentra dentro de algun paquete. Se debe especificar toda la ruta. En el paramentro code se debe especificar el nombre del .jar donde se encuentran el applet y demás clases o archivos posea. Tener de esta forma un applet es mas ordenado que tener todas las .class y archivos regados.

Si les lanza el siguiente error o similares específicamente en Firefox :

Exception in thread “AWT-EventQueue-2” java.lang.InternalError: couldn’t create component peer at sun.awt.windows.WComponentPeer.checkCreation(Unknown Source) at sun.awt.windows.WComponentPeer.<init>(Unknown Source) at sun.awt.windows.WCanvasPeer.<init>(Unknown Source) at sun.awt.windows.WPanelPeer.<init>(Unknown Source) at sun.awt.windows.WWindowPeer.<init>(Unknown Source)
  

Pueden intentar agregando el código para applet en una página aparte puede ser .html o .jsp e incorporar un iframe y como src agregar la anterior página. Raro no? Bueno asi me funcionó. Prueben ustedes a ver cual solución les funciona o se adapta a sus necesidades.

<iframe id="iframeContenedor" width="420"
	height="180" scrolling="no" frameborder="0"
	src="ARCHIVO_CON_CODIGO_APPLET.jsp">

,

  1. #1 por Alex Barahona el septiembre 20, 2011 - 6:29 pm

    muchas gracias me fue de gran ayuda este codigo……..
    por sierto en la etiqueta noembed te sobran unas comillas dobles

    • #2 por kompuhint el septiembre 21, 2011 - 8:16 am

      Me alegro que te haya ayudado, esa es la razón del blog. Y gracias por la corrección ya lo arregle.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: