×
Namespaces

Variants
Actions
Revision as of 02:56, 8 May 2013 by hamishwillee (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Como usar feeds RSS em Widgets WRT

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Compatibilidade
Plataforma(s):
Symbian

Artigo
Criado por dcrocha em Dcrocha
Última alteração feita por hamishwillee em 08 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 8 May 2013, at 02:56.
55 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.

×