Namespaces

Variants
Actions

Please note that as of October 24, 2014, the Nokia Developer Wiki will no longer be accepting user contributions, including new entries, edits and comments, as we begin transitioning to our new home, in the Windows Phone Development Wiki. We plan to move over the majority of the existing entries over the next few weeks. Thanks for all your past and future contributions.

Como usar feeds RSS em Widgets WRT

From Wiki
Jump to: navigation, search
Article Metadata

Compatibilidade
Plataforma(s):
Symbian

Artigo
Criado por dcrocha em Dcrocha
Última alteração feita por hamishwillee em 07 May 2013

Compatibilidade: Web Run-Time na S60 3rd Edition, Feature Pack 2


Contents

Código de exemplo

Este exemplo contém código JavaScript para fazer a leitura de feeds RSS. O parsing de feeds RSS é feito utilizando-se JavaScript padrão - entretanto desenvolvedores devem introduzir manipuladores de condições de erro para os casos em que o aparelho estiver fora da rede, sem SIM card, etc. ou a ação tenha sido cancelada pelo usuário.

Requisição

function loadRSSFeed(url) {
if (null == req) {
req = new XMLHttpRequest();
}
 
req.onreadystatechange = ReqStateChange;
 
req.open("GET", url, true);
req.send(null);
 
document.getElementById("content").innerHTML = "Updating" + url;
}

Callback da requisição

function ReqStateChange() {
if (req.readyState == 4) {
 
if (req.status == 200) {
UpdateContent(req);
}
else {
alert("error");
}
}
}

Interpretador de RSS

function UpdateContent(reqst) {
var d = null;
var el = document.getElementById("content");
 
document.getElementById("content").innerHTML = "Updating!";
 
var rss = null;
 
var html = "";
rss = reqst.responseXML.documentElement;
 
if (rss != null) {
var itemTitleNodes = rss.getElementsByTagName("title");
var itemLinkNodes = rss.getElementsByTagName("link");
var itemDescNodes = rss.getElementsByTagName("description");
 
var c=itemTitleNodes.length;
 
el.innerHTML="Displaying " + c + " items...";
 
if (c<=0) {
return;
};
 
if (c>4) c=3; // limit to four stories
 
for (var i = 0; i < c; i++) {
var itemLink, itemTitle, itemDesc;
 
if ((itemTitleNodes[i+2].childNodes[0] != null) &&
(itemLinkNodes[i+2].childNodes[0] != null) &&
(itemDescNodes[i+1].childNodes[0] != null)) {
 
itemTitle = itemTitleNodes[i+2].childNodes[0].nodeValue;
itemLink = itemLinkNodes[i+2].childNodes[0].nodeValue;
itemDesc = itemDescNodes[i+1].childNodes[0].nodeValue;
}
else {
itemTitle = "RSS feed missing";
itemLink = "???";
itemDesc = "RSS broken";
}
html = html + "<div class='item'><div class='linking'
onClick='widget.openURL(\""
+ itemLink +
"\");'>"+itemTitle+"</div></br><div
class='description'>"
+itemDesc+"</div></div></br>";
}
}
 
el.innerHTML = html;
html = null;
el = null;
req = null;
 
d = document.getElementById("lastupdate");
}
This page was last modified on 7 May 2013, at 23:56.
211 page views in the last 30 days.

Was this page helpful?

Your feedback about this content is important. Let us know what you think.

 

Thank you!

We appreciate your feedback.

×