xhr com phonegap no blackberry
-
18-09-2020 - |
Pergunta
Estou tentando enviar um xhr usando phonegap no blackberry.Atualmente, quando faço a solicitação, ela falha silenciosamente.Eu tentei usar jQuery jQuery.getJSON(url , callback)
,
um objeto xhr
var xmlhttp = new XMLHttpRequest();
//callback function when XMLHttpRequest is ready
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4){
if(xmlhttpForTGT.status==200){
response = xmlhttpForTGT.getResponseText()
}
else{
alert("Request Failed")
}
}
}
xmlhttp.open("GET", url , true)
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded')
xmlhttp.send()
, e xui
x$('#home').xhr(url,
{method: 'get',
callback: function(){ alert('made request') }});
e até agora não consigo fazer nenhum deles funcionar.Alguém mais conseguiu fazer o xhr funcionar?Estou usando JRE4.6.1 e Eclipse para o ambiente de desenvolvimento.Nenhum erro é gerado quando tento fazer as solicitações, algum conselho?
Solução
Contribuí muito para o projeto phonegap-blackberry e, em todos os meus testes, por algum motivo, o objeto XmlHttpRequest sempre gera uma exceção vazia quando você chama a função open() nele.Não sei por que - o phonegap-blackberry em sua forma atual aproveita o navegador proprietário e não WebKit da RIM, então talvez isso tenha algo a ver com isso.
O que fiz foi implementar uma abordagem muito básica, nativa e baseada em Java para fazer solicitações HTTP e recuperar a resposta.Ele é conectado novamente ao JavaScript em seu aplicativo PhoneGap como parte da API PhoneGap de 'rede'.Algumas informações sobre isso estão aqui: http://wiki.phonegap.com/Known-issues-(BlackBerry)
OBSERVAÇÃO:esta é definitivamente uma medida provisória.A implementação é difícil e definitivamente precisa de algum trabalho.Atualmente, funciona apenas com endpoints de API que retornam JSON.
Exemplo de uso:
navigator.network.XHR('http://www.mysite.com/myapi',
'This is my POST data, or I could pass in "null" for empty POST data',
function(response) {
// This is my success callback.
// Do something with the JSON response object here.
});
Espero que ajude.