Не удается получить результаты JSON из Twitter, используя PhoneGap и JQuery - PullRequest
0 голосов
/ 11 июля 2011

Я пытаюсь получить последние 50 твитов, используя определенный хэш-тег, на мобильном устройстве, используя PhoneGap (0.9.6) и jQuery (1.6.1).Вот мой код:

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.Я не вижу ни одного из журналов консоли, и он все еще работает в браузере.

Что я делаю не так?Если невозможно позвонить getJson() на мобильное устройство с помощью PhoneGap, то какова моя альтернатива (надеюсь, не прибегая к нативному коду - это поможет достичь цели).

Бонус: как я могу отладить это намобильный симулятор?В браузере я использую инструменты dev или Firebug, но в симуляторах, как уже упоминалось, я даже не получаю сообщения журнала.

Как всегда, спасибо за ваше время,

Парень

Обновление:
Как интуитивно понятно, @Greg, функция вообще не вызывалась.Вот что я нашел и как обошел:
У меня есть этот <a> элемент в HTML <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 голосов
/ 11 июля 2011

Если учесть, что (а) не так много может пойти не так с первой строкой вашей функции и (б) вторая строка является командой log, тогда может показаться, что функция вообще не вызывается,Вам придется исследовать другой код в вашем приложении.

Или вы говорите, что у вас нет способа читать зарегистрированные сообщения на ваших мобильных устройствах?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...