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

Cannot get json results from twitter using PhoneGap and jQuery

本文关键字:twitter 获取 json 结果 jQuery PhoneGap      更新时间:2023-09-26

我正在尝试使用某个散列标签在移动设备上使用PhoneGap(0.9.6)和jQuery(1.6.1)获得最近50条tweet。下面是我的代码:

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之前。

考虑到(a)函数的第一行没有太多可能出错的地方,(b)第二行是一个日志命令,那么似乎根本没有调用该函数。你必须调查应用程序中的其他代码。

或者你是说你没有办法在你的移动设备上读取记录信息?