J'ai besoin d'écrire une application PhoneGap (avec HTML5 et JS, je n'ai pas besoin de compatibilité avec IE) avec AJAX pour qu'elle lise un flux RSS et recherche des informations spécifiques à partir de celui-ci. Le problème que je rencontre est que je n'ai pas la meilleure façon de faire un flux RSS, et que jQuery ne peut pas faire du XML. Des suggestions ?
Réponses
Trop de publicités?J'en ai récemment fabriqué un en utilisant ce tutoriel : http://net.tutsplus.com/tutorials/javascript-ajax/how-to-build-an-rss-reader-with-jquery-mobile-2/
Je viens de créer une application phonegap qui analyse un flux RSS externe à l'aide de jFeed. Je vais vous donner un exemple :
Tout d'abord, j'inclus les scripts dans mon fichier index.html :
<head>
...
<script type="text/javascript" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" src="jquery/jquery-1.6.4.js"></script>
<script type="text/javascript" src="jquery.mobile/jquery.mobile-1.0b3.min.js"></script>
<script type="text/javascript" src="jquery.jfeed/dist/jquery.jfeed.js"></script>
<script type="text/javascript" src="scripts/my.js"></script>
...
</head>
Ensuite, en my.js
J'utilise les éléments suivants :
parseFeed();
function parseFeed() {
$.getFeed({
url: 'http://someUrl.com',
dataType: "xml",
success: function(feed) {
$('#feedresult').empty();
var html = '<ul data-role="listview">';
for(var i = 0; i < feed.items.length; i++) {
var item = feed.items[i];
html += '<li>'
+ '<a href="#article?id='
+ i
+ '">'
+ item.title
+ '</a>'
+ '</li>';
}
html = html + '</ul>';
$('#feedresult').append(html);
$('#main').page('destroy').page();
}});
};
Le code crée ensuite un listview (jQuery mobile) dans ma div #feedresult où chaque entrée représente un élément du flux. Comme phonegap utilise une sorte de vue web qui charge tout le contenu en utilisant le protocole file:/// ( http://groups.google.com/group/phonegap/browse_thread/thread/b60bda03bac6e9eb ), il n'y a pas de problème pour effectuer des requêtes XMLHttpRequest interdomaines à partir de Phonegap.
Cette question est ancienne, mais il peut être utile de la résoudre en 2014 ;-).
J'ai testé plusieurs plugins jQuery pour inclure un lecteur RSS, mais le seul qui fonctionne comme un charme en 1mn est zrssfeed
Il suffit d'ajouter l'appel (après call jquery et jquery mobile) dans l'en-tête :
<script type="text/javascript" src="jquery.zrssfeed.min.js"></script>
Et après avoir lancé l'appel jquery comme ceci :
<script type="text/javascript">
$(document).ready(function () {
$('#feedresult').rssfeed('http://my.wordpress.website.com/feed/', {
limit: 5
});
});
</script>
J'espère que cela vous aidera, Mike
Ce que vous voulez dire, c'est que jQuery ne peut pas faire de XML. jQuery est JavaScript et jQuery utilise XMLHttpRequest
lors des appels Ajax. Voir le nom XML*
. Voir : http://api.jquery.com/jQuery.ajax/ . Il y a dataType
param. Vous pouvez passer xml
à elle. Ensuite, vous obtiendrez un objet dom avec toutes les méthodes de l'objet dom.
Vous pouvez éventuellement l'utiliser comme second paramètre des sélecteurs de jQuery :
jQuery.get(url, {}, function (data) {
var entries = $("entry", data);
doSomething(entries);
}, 'xml');
Une option serait d'utiliser un tuyau RSS-to-JSON, comme celui-ci : http://pipes.yahoo.com/pipes/pipe.info?_id=2FV68p9G3BGVbc7IdLq02Q