Bom dia gente.
Desde já peço desculpas se estou postando na área errada, mas acho que não.
É o seguinte, tenho um app me que roda perfeitamente. Para fazer o download da app, coloquei ela no meu server (rodando em tomcat) a seguinte rotina:
private static String jadName = "/myApp.jad";
private static String jarName = "/myApp.jar";
public void sendFile(boolean isJar) throws IOException {
InputStream in = getInputStreamToDownload(isJar);
HttpServletResponse response = ServletActionContext.getResponse();
if ( isJar){
response.setContentType("application/java-archive");
response.setHeader("Connection", "keep-alive");
response.setHeader("Content-Disposition", "attachment; filename=\"myApp.jar\"");
}
else{
response.setContentType("text/vnd.sun.j2me.app-descriptor");
response.setHeader("Connection", "keep-alive");
response.setHeader("Content-Disposition", "attachment; filename=\"myApp.jad\"");
}
OutputStream out = response.getOutputStream();
int readlen, sentsize = 0;
byte buffer[] = new byte[1024];
while ((readlen = in.read(buffer)) != -1) {
out.write(buffer, 0, readlen);
sentsize += readlen;
}
out.flush();
out.close();
in.close();
}
private InputStream getInputStreamToDownload(boolean isJar) {
if (isJar) {
return Thread.currentThread().getContextClassLoader().getResourceAsStream("app/1"+ jarName);
} else {
return Thread.currentThread().getContextClassLoader().getResourceAsStream("app/1"+ jadName);
}
}
ok… Este é o método responsável por fazer o donwload da aplicação.
Existe um outro método que identifica se a requisição veio de um celular (caso não tenha vindo, ele redireciona para uma página de erro).
Existe uma função chamada “downloadJAD” que retorna este código acima passando no parametro um “false” e uma outra função chamada “downloadJAR” que retorna o código acima passando no parametro “true”… Bom, parece bem simples, tudo isto.
Devo dizer que tudo funciona perfeitamente. Entretanto, no iPhone (e em alguns outros aparelhos) quando mando fazer download do JAD, ele abre o JAD no celular (isto mesmo, ABRE não executa).
Ele deveria fazer o download, como em todos os outros aparelhos, entretanto, ele abre o JAD como um arquivo txt. Todas as informações contidas em meu JAD são exibidas na tela do iPhone.
Alguém sabe como posso resolver isto? Estava pensando em criar algum tipo de WAP para isto.
COISAS QUE JÁ FIZ:
- Configurei o tomcat (os mime types);
- Testei um milhão de headers para o jad;
- Testei deixar ele no server como link apenas (não é o que quero, mas se funcionasse deixaria assim até achar uma solução de verdade);
Bom… é isto ae, galera… Se alguém souber o que devo fazer, me de uma força ai.
Desculpem-me se postei na área errada, ok?
Att,
McLuck