无法使用PhoneGap和jQuery从twitter获得json结果

时间:2011-07-10 22:34:38

标签: javascript jquery json cordova

我正在尝试使用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类似的问题。任何想法都表示赞赏。

1 个答案:

答案 0 :(得分:0)

考虑到(a)你的函数的第一行可能出现的问题并不多,(b)第二行是一个log命令,那么似乎根本没有调用该函数。您必须调查应用中的其他代码。

或者您是说您无法在移动设备上阅读已记录的消息?