Phonegap, jQueryMobile Et des services Web
J'ai créé un natif de l'application pour Android en utilisant le SDK Android et java, à l'aide d'un ASP.Net service Web créé par moi, et il fonctionne très bien. Mais maintenant, je veux faire une croix-plate-forme. J'ai entendu dire que Phonegap et jQuery Mobile aidera avec cela, mais je suis encore un peu confus.
- Est-il nécessaire pour héberger le fichier HTML qui utilise du Javascript pour fonctionner correctement?
OU - Puis-je inclure le HTML et le js dans mon application et d'appeler les méthodes de service web?
Quelqu'un peut-il svp me guider?
MON Code de Démonstration est
JAVA SCRIPT
<script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
<script src="jquery-1.7.2.min"></script>
<script src="jquery.mobile-1.1.1.min.js"></script>
<script type="text/javascript" charset="utf-8"/></script>
<link rel="stylesheet" src="jquery.mobile-1.1.1.min.css"/>
<script type="text/javascript">
function onDeviceReady() {}
document.addEventListener("deviceready", onDeviceReady, false);
function LoginButton_onclick() {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: "http://182.72.192.18/webservicedemo/service.asmx/HelloWorld",
data: '{}',
success: function(msg) {
jsonArray = $.parseJSON(msg.d);
var $ul = $( '<ul id="details">' );
for(i=0; i < jsonArray.length; i++)
{
$("#details").append('<li id="'+i+'" name="head" >'+jsonArray[i].name+'</li>' );
} $('#details').listview('refresh');
},
error: function(msg) {
alert("Error");
}
});
</script>
HTML
<div data-role="page" id="Page1">
<h1>DEMO PAGE</h1>
<div id="DEMO">
<input id="LoginButton" type="button" value="GET DATA" onclick="LoginButton_onclick()" /></div>
<div id="divList" data-role="content">
<ul id="details" data-role="listview" data-inset="true"></ul>
</div>
</div>
</body>
et mon ASP.NET Service Web est
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class Service : System.Web.Services.WebService{
JavaScriptSerializer serializer = new JavaScriptSerializer();
public Service () {}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string HelloWorld() {
List<clsDetails> deailsList = new List<clsDetails>{
new clsDetails(1,"BOY","SCHOOL"),
new clsDetails(2,"GIRL","COLLEGE"),
new clsDetails(3,"MAN","OFFICE")};
string detail = serializer.Serialize(deailsList);
return detail;
}
}
si j'héberge le fichier html avec ma web-service, il me fournir le résultat .
mais quand j'essaie d'appeler à l'aide d'un fichier html local à partir de l'application android qu'il échoue.
je ne peux pas comprendre ce qui s'est passé.
Quelqu'un peut me dire ce qui s'est passé ici?
Regardez ici, c'est la réponse que je reçois de web-service, et je parse que JSON
phonegap.xml
<phonegap>
<access origin="http://182.72.192.18" />
</phonegap>
- Avez-vous regarder le phonegap site web? C'est assez bien documentée.
- Je ne veux pas c'est un site .. je me demande que peut-téléphone-gap peut être utilisé pour appeler les services web à contenu dynamique . quelle est la façon de le faire?
- Et je voulais aller phonegap.com et de lire la documentation avant de poser vraiment des questions de base. Essayer de googler vos questions avant de poster.
- mon code est ici u m'aider à trier ce qui s'est passé. je suis novice dans la technologie web et js . je n'ai pas réussi à trouver ce qui n'allait pas
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser un html en local et le serveur de données à l'aide de XHR les appels vers votre site web, et de montrer ensuite les données de votre webservice dans votre code html.
Edit après avoir vu le code:
Le problème, c'est l'url. Vous ne pouvez pas utiliser localhost, parce que si vous testez sur un périphérique, localhost est le dispositif, et l'appareil n'a pas le webservice, vous devez utiliser l'adresse iP locale de votre machine. http://192.168.1.XXX:1000/WebSite2/Service.asmx/HelloWorld
Edit 2:
Je viens de tester ton code et il a obtenu de travailler pour moi, il suffit de changer cela.
Le jsonArray[i].Le résultat n'a pas fonctionné pour moi, c'retour indéfini, mais vous pouvez accéder à tous les attributs de l'objet json, dans l'exemple que j'ai utilisé le nom.
Et de mettre de l'actualisation à l'extérieur de la pour le, vous n'avez qu'à actualiser lorsque vous avez terminé, pas tout le temps, et de mettre le
;
à la fin.Si il continue à ne pas fonctionner, vérifiez si vous avez ajoutés à la liste blanche du domaine phonegap liste blanche guide
De travail complète, code
Le problème que vous avez c'est que vous ne pouvez pas accéder à votre site web à partir de votre appareil mobile, uniquement lorsque vous exécutez votre programme avec votre ordinateur de l'émulateur.
Vous devez faire ceci:
Modifier res/xml/cordova.xml pour ne crossdomain problèmes.
Avec ces étapes de votre programme fonctionne parfaitement.
Modifier
J'ai vu que le type que vous êtes de retour dans votre WS n'est pas en JSON style. Votre réponse est quelque chose entre XML et JSON. Lorsque vous obtenez la bonne valeur de retour de la WebMethod tout ira OK.
Vous devez utiliser la dernière version de Cordoue et de jQM. Voir que votre jQM le CSS et le JS ne correspondent pas dans les versions.
Vous devez inclure le fichier HTML qui présente les données + JS appel du service web avec votre application. Grâce à une injection de données (par exemple, JSON ou XML par XHR appels), vous pouvez extraire les données à partir de votre service web. Cela signifie que votre service web doit en sortie les données en JSON ou XML, de sorte que votre HTML + JS sera en mesure de traiter et d'afficher les données à partir de votre service web. Vous pouvez faire cela avec PhoneGap SDK ou même PhoneGap Build.
Un exemple simple que j'aime personnellement, peut être trouvé ici: http://coenraets.org/blog/2011/10/sample-application-with-jquery-mobile-and-phonegap/. Au lieu de ASP.NET il fonctionne avec PHP /MySQL, mais le concept est fondamentalement la même, je pense.
C'est un bon exemple, j'ai constaté http://www.idesigncity.co.uk/how-to-fetch-json-data-from-phonegap
Habituellement, JSON ou XML appel sera votre réponse. Télécharger le zip en y