2011-07-10 52 views
0

我試圖在使用PhoneGap(0.9.6)和jQuery(1.6.1)的移動設備上使用特定的哈希標籤獲取最後50條推文。這裏是我的代碼:無法使用PhoneGap和jQuery獲取twitter的json結果

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,但在模擬器中,如前所述,我甚至沒有看到日誌消息。

一如往常,感謝您的時間,

蓋伊

更新:
作爲@格雷格直覺,功能並沒有被調用。這裏是我的發現,我如何繞過它:
我有這個<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的。我不知道是什麼東西搞砸與特定的點擊()綁定,但我之前遇到類似的問題與PhoneGap。任何想法都表示讚賞。

回答

0

考慮到(a)函數的第一行沒有太多錯誤,(b)第二行是日誌命令,那麼看起來函數沒有被調用所有。您必須在您的應用中調查其他代碼。

還是你說你沒有辦法讀取移動設備上的日誌信息?

+0

該功能絕對稱爲。我運行在瀏覽器中運行的相同HTML/JS。而且我沒有辦法在iPhone或Android模擬器上閱讀日誌 - 消息無處可去。 –

+0

@Traveling - 你有沒有試過(不寒而慄)'alert()'? – Greg

+0

是的,我顫抖(:)並嘗試 - 在模擬器中沒有任何顯示。 –