我正在尝试使用PhoneGap(0.9.6)和jQuery(1.6.1)在移动设备上使用某个哈希标记获取最近50条推文。这是我的代码:
function getTweets(hash, numOfResults) {
var uri = "http://search.twitter.com/search.json?q=" + escape(hash) + "&callback=?&rpp=" + numOfResults;
console.log("uri: " + uri);
$.getJSON(uri, function(data) {
var items = [];
if(data.results.length > 0) {
console.log("got " + data.results.length + " results");
$.each(data.results, function(key, val) {
var item = "<li>";
item += "<img width='48px' height='48px' src='" + val.profile_image_url + "' />";
item += "<div class='tweet'><span class='author'>" + val.from_user + "</span>";
item += "<span class='tweettext'>" + val.text + "</span>";
item += "</div>";
item += "</li>";
items.push(item);
});
}
else {
console.log("no results found for " + hash);
items.push("<li>No Tweets about " + hash + " yet</li>");
}
$("#tweetresults").html($('<ul />', {html: items.join('')}));
});
}
此代码在浏览器中运行良好,并且在iPhone模拟器中工作了一段时间。现在它无法在iPhone或Android模拟器上运行。我没有看到任何控制台日志,它仍可在浏览器中使用。
我做错了什么?如果无法使用PhoneGap在移动设备上拨打getJson()
,我的替代方案是什么(希望不使用本机代码 - 这会超出目的)。
奖励:如何在移动模拟器上调试?在浏览器中我使用开发工具或Firebug,但在模拟器中,如上所述,我甚至没有得到日志消息。
一如既往,谢谢你的时间,
盖
更新
由于@Greg直觉,该功能根本没有被调用。这是我找到的以及我如何绕过它:
我在HTML <a>
中有这个<a href="#" id="getTweets">Get tweets</a>
元素
然后我在$(document).ready()
函数中有了这段代码:
$("#getTweets").click(function() {
var hash = "#bla";
getTweets(hash, 50);
});
没有调用该函数。但是,一旦我将代码更改为:
function gt() {
var hash = "#bla";
getTweets(hash, 50);
}
和我的HTML:
<a href="javascript:gt()" id="getTweets">Get Tweets</a>
它现在可以正常工作并按预期调用Twitter。我不知道是什么搞砸了特定的click()绑定,但之前我遇到过与PhoneGap类似的问题。任何想法都表示赞赏。
答案 0 :(得分:0)
考虑到(a)你的函数的第一行可能出现的问题并不多,(b)第二行是一个log命令,那么似乎根本没有调用该函数。您必须调查应用中的其他代码。
或者您是说您无法在移动设备上阅读已记录的消息?