2011-07-10 13 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を使用していますが、シミュレータでは、前述のように、私もログメッセージを取得しません。

いつものように、あなたの時間のおかげで、

ガイ

アップデート:@グレッグは直感として、機能が全く
と呼ばれていませんでした。ここでは、私が見つけたものと私はそれをバイパスする方法は次のとおりです。

$("#getTweets").click(function() { 
    var hash = "#bla"; 
    getTweets(hash, 50); 
}); 

機能を呼び出していませんでした:
私はHTML <a href="#" id="getTweets">Get tweets</a>
にこの<a>要素を持ってそれから私は$(document).ready()機能で、このコードを持っています。しかし、私はにコードを変更したら:

function gt() { 
    var hash = "#bla"; 
    getTweets(hash, 50); 
} 

と私のHTMLへ:

<a href="javascript:gt()" id="getTweets">Get Tweets</a> 

それが機能するようになりましたし、意図したとおりにツイッターを呼び出します。私はその特定のクリック()バインドに何が絡んでいるのか考えていませんが、前にPhoneGapと同様の問題に遭遇しました。任意のアイデアが評価されます。

答えて

0

(a)関数の最初の行で間違っている可能性はあまりなく、(b)2行目がログコマンドであることを考慮すると、関数が呼び出されていないように見えますすべて。アプリ内の他のコードを調べる必要があります。

また、モバイルデバイスでログに記録されたメッセージを読み取る方法がないと言っていますか?

+0

関数が必ず呼び出されます。私はブラウザで実行するのと同じHTML/JSを実行します。そして、私はiPhoneやAndroidのシミュレータのログを読む方法がありません。メッセージはどこにも行きません。 –

+0

@Traveling - あなたは '警告()'を試しましたか? – Greg

+0

はい、私は(:))shudderedしてみました - シミュレータには何も表示されません。 –

関連する問題