una reanudar por nuestra interrumpida google error desde descargas descargar descarga deja como chrome carpeta archivos aplicación gwt cordova download mgwt

gwt - reanudar - error: error de descarga



¿Es posible descargar un archivo del servidor a mi dispositivo con la aplicación MGWT & GwtPhoneGap? (2)

En mi caso, acabo de escribir un servlet que proporcionará el archivo.

A partir de ahí tienes dos opciones:

  • Ponga un enlace en su aplicación y redirija a un usuario a la url que será capturada por el servlet.
  • Para las solicitudes POST use un RequestBuilder (¡formularios no ocultos!), Luego escriba la respuesta a una nueva ventana usando JSNI.

    private native void openWindow(String contents, String blockedMsg) /*-{ var win = window.open("", "_blank"); if (win && win.top) { win.document.write(contents); } else { alert(blockedMsg); } }-*/;

Desarrollé una aplicación usando MGWT y GwtPhoneGap y utilicé rpc para la comunicación del servidor. Quiero descargar un archivo del servidor a mi dispositivo cliente (iOs / android). ¿Es esto posible? si es así, ¿qué debo hacer para lograr mi objetivo? No recibo un gran apoyo de los foros de MGWT. Por favor dime la manera de hacerlo.

gracias por adelantado

Puse un poco de esfuerzo en mi pregunta, he hecho así. pero aún no tuvo éxito. por favor revisa mi código.

public final native String download(String serverUrl,String filepath,Callback callback) /*-{ return this.download(serverUrl, filePath, function(result) { callback.Callback::o:onSuccess(Result;);)(result); }, function(error) { callback.Callback::o:onError(Error;);)(error); }); }-*/;


Si el archivo es un archivo simple (Un PDF, por ejemplo) Simplemente ponga un enlace a la URL del archivo, el navegador móvil descargará el archivo al teléfono. Si el archivo se genera, debe crear un servlet para realizar la descarga:

public class ServletDownloadDemo extends HttpServlet{ private static final int BYTES_DOWNLOAD = 1024; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException{ response.setContentType("text/plain"); response.setHeader("Content-Disposition", "attachment;filename=downloadname.txt"); ServletContext ctx = getServletContext(); InputStream is = ctx.getResourceAsStream("/testing.txt"); int read=0; byte[] bytes = new byte[BYTES_DOWNLOAD]; OutputStream os = response.getOutputStream(); while((read = is.read(bytes))!= -1){ os.write(bytes, 0, read); } os.flush(); os.close(); } }

En GWT para una Solicitud de publicación, puede usar FormPanel que enviará la solicitud a un iframe oculto.

FormPanel form = new FormPanel(); form.setMethod(FormPanel.METHOD_POST); form.setAction("/downloadServlet"); FlowPanel hiddenPanel = new FlowPanel(); hiddenPanel.add(new Hidden("name1", "value")); hiddenPanel.add(new Hidden("name2", "value")); form.setWidget(hiddenPanel); RootPanel.get().add(form); form.submit();

O puedes poner una forma real.

Pero con PhoneGap, puede usar File API , pero debe preguntarle al usuario dónde escribe el archivo en su teléfono. Puede descargar el contenido del archivo a través de una solicitud RPC si lo desea y escribir en el archivo.