var TiTwitter = {}; (function(){ //UI関連 TiTwitter.UI = {}; //本体となるTableViewはここに宣言しておく TiTwitter.UI.tableView = Titanium.UI.createTableView(); //個々のTableViewRowを生成する TiTwitter.UI.createTableViewRow = function(tweet){ var row = Titanium.UI.createTableViewRow(); row.height = 180; row.add(Titanium.UI.createLabel({ text:tweet.user.screen_name, top:8, left:64, height:16 })); row.add(Titanium.UI.createLabel({ text:tweet.text, top:32, left:64, width:256, height:'auto' })); row.add(Titanium.UI.createImageView({ image:tweet.user.profile_image_url, top:8, left:8, width:48, height:48 })); return row; }; //プラットフォーム依存部を場合分けで記述する TiTwitter.UI.setRefreshButton = function(callback){ //(ios)ウィンドウの右上ボタンを設定 var rightButton = Titanium.UI.createButton({ systemButton: Titanium.UI.iPhone.SystemButton.REFRESH }); Titanium.UI.currentWindow.rightNavButton = rightButton; rightButton.addEventListener('click',function(){ callback(); }); }; //TwitterAPIを非同期で呼び出す TiTwitter.callAPI = function(method,url,params,callbackOnLoad){ //ネットワークが使用できないときはエラーメッセージを表示する if(Titanium.Network.online == false){ //エラー表示 alert('offline'); return; } //HTTPClientオブジェクトを生成 var xhr = Titanium.Network.createHTTPClient(); xhr.open(method,url,false); //レスポンスを受け取るイベント(非同期に実行される) xhr.onload = function(){ callbackOnLoad(xhr.status,xhr.responseText); } //エラー発生時のイベント xhr.onerror = function(error){ //errorにはエラー事由の文字列オブジェクトが入ります。 alert(error); }; //リクエスト送信 if(params){ xhr.send(params); }else{ xhr.send(); } }; TiTwitter.loadUserTimeline = function(screenName){ var url = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=' + screenName; TiTwitter.callAPI('GET',url,null,function(status,responseText){ //データをクリア TiTwitter.UI.tableView.data = []; //受け取ったJSONをパース var json = JSON.parse(responseText); for (var i=0; i < json.length; i++) { TiTwitter.UI.tableView.appendRow(TiTwitter.UI.createTableViewRow(json[i])); }; }); }; //検索結果を取得する TiTwitter.loadSearchResult = function(queryString){ var url = 'http://search.twitter.com/search.json'; TiTwitter.callAPI('GET',url,{q:queryString},function(status,responseText){ //データをクリア TiTwitter.UI.tableView.data = []; //受け取ったJSONデータをパース var json = JSON.parse(responseText); for (var i=0; i < json.results.length; i++) { //レイアウトの違いを吸収 var tweet = json.results[i]; tweet.user = {}; tweet.user.screen_name = tweet.from_user; tweet.user.name = tweet.from_user; tweet.user.profile_image_url = tweet.profile_image_url; TiTwitter.UI.tableView.appendRow(TiTwitter.UI.createTableViewRow(tweet)); appendRow(TiTwitter.UI.createTableViewRow(tweet)); }; }); }; })();
//win1.jsのwindowを変数にセット var win = Titanium.UI.currentWindow; //ライブラリの読み込み Titanium.include('titwitter.js'); //TableViewの追加 win.add(TiTwitter.UI.tableView); //再読み込みの設定 TiTwitter.UI.setRefreshButton(function(){ TiTwitter.loadUserTimeline('appcelerator'); }); //初回読み込み TiTwitter.loadUserTimeline('appcelerator');
// this sets the background color of the master UIView (when there are no windows/tab groups on it) Titanium.UI.setBackgroundColor('#000'); // create tab group var tabGroup = Titanium.UI.createTabGroup(); // // create base UI tab and root window // var win1 = Titanium.UI.createWindow({ title:'@appcelerator', backgroundColor:'#fff', //分割先のスクリプトファイルパス url:'win1.js' }); /* win1.oneMoreThing = true; win1.open(); */ //customという名前のカスタムイベントを受け取り処理する /* Titanium.App.addEventListener('custom',function(e){ var test1 = Ti.API.info(e.message); var test2 = Ti.API.info(e.profile.name); alert(test1); alert(test2); }); */ Titanium.App.addEventListener('custom',function(e){ //イベント引数として受け取るのではなくアプリケーションプロパティを利用 var test3 = Titanium.API.info(Ti.App.Properties.getString('message')); alert(test3); }) var tab1 = Titanium.UI.createTab({ icon:'dark_appcelerator.png', title:'@appcelerator', window:win1 }); // // create controls tab and root window // var win2 = Titanium.UI.createWindow({ title:'@appcelerator_ja', backgroundColor:'#fff' }); var tab2 = Titanium.UI.createTab({ icon:'dark_appcelerator.png', title:'@appcelerator_ja', window:win2 }); var label2 = Titanium.UI.createLabel({ color:'#999', text:'I am Window 2', font:{fontSize:20,fontFamily:'Helvetica Neue'}, textAlign:'center', width:'auto' }); win2.add(label2); // // create controls tab and root window // var win3 = Titanium.UI.createWindow({ title:'#Titanium', backgroundColor:'#fff', url:'win3.js' }); var tab3 = Titanium.UI.createTab({ icon:'dark_pegman.png', title:'#Titanium', window:win3 }); // // create controls tab and root window // var win4 = Titanium.UI.createWindow({ title:'#TitaniumJP', backgroundColor:'#fff' }); var tab4 = Titanium.UI.createTab({ icon:'dark_pegman.png', title:'#TitaniumJP', window:win4 }); var label4 = Titanium.UI.createLabel({ color:'#999', text:'I am Window 2', font:{fontSize:20,fontFamily:'Helvetica Neue'}, textAlign:'center', width:'auto' }); win4.add(label4); //Titanium.include('tab5.js'); var win5 = Titanium.UI.createWindow({ title:'#Titanium', backgroundColor:'#fff', url:'win5.js' }); var tab5 = Titanium.UI.createTab({ icon:'dark_search.png', title:'#Titanium', window:win5 }); // // add tabs // tabGroup.addTab(tab1); tabGroup.addTab(tab2); tabGroup.addTab(tab3); tabGroup.addTab(tab4); tabGroup.addTab(tab5); // open tab group tabGroup.open(); if(Titanium.Network.online == false){ alert('offline'); }else{ var xhr = Titanium.Network.createHTTPClient(); var url = "http://www.appcelerator.com/"; //接続 xhr.open('GET',url,false); //レスポンツを受け取るイベント(非同期に実行される) xhr.onload = function(){ //Titanium Developerの画面にログを出力する Titanium.API.info(xhr.responseText); } xhr.onerror = function(error){ //error message }; //リクエストを送信 xhr.send(); }
var win = Titanium.UI.currentWindow; var tableView = Titanium.UI.createTableView(); win.add(tableView); //@appceleratorのtweetを取得 var url = 'http://search.twitter.com/search.json'; var refreshTimeline = function(){ //alert("読み込むよ!"); if(Titanium.Network.online != false){ //HTTPclientオブジェクト生成 var xhr = Titanium.Network.createHTTPClient(); xhr.open('GET',url,false); //レスポンスを受け取るイベント(非同期に実行させる) xhr.onload = function(){ //表示内容をいったんクリアする tableView.data = []; //受け取ったJSONデータをパース var json = JSON.parse(this.responseText); //JSON構造が違うため、json.lengthではなく、json.results.length for(var i=0; i<json.results.length; i++){ var tweet = json.results[i]; tweet.user = {}; tweet.user.screen_name = tweet.from_user; tweet.user.name = tweet.from_user; tweet.user.profile_image_url = tweet.profile_image_url; //ここからは基本的に同じ var row = Titanium.UI.createTableViewRow(); row.height = 180; row.add(Titanium.UI.createLabel({ //tweet変数を経由して取得する text:tweet.user.screen_name, top:8, left:64, height:16 })); row.add(Titanium.UI.createLabel({ text:tweet.text, top:32, left:64, width:256, height:'auto' })); row.add(Titanium.UI.createImageView({ image:tweet.user.profile_image_url, top:8, left:8, width:48, height:48 })); tableView.appendRow(row); } }; //error xhr.onerror = function(error){ //error message alert(error); }; //send xhr.send({ q:'#Titanium', lang:'ja', locale:'ja' }); }else{ //error alert('offline'); } } refreshTimeline(); //ウィンドウの右上のボタンを設定 var rightButton = Titanium.UI.createButton({ //title:'再読込' systemButton:Titanium.UI.iPhone.SystemButton.REFRESH }); win.rightNavButton = rightButton; rightButton.addEventListener('click',function(){ //alert('onbt'); refreshTimeline(); });
var win = Titanium.UI.currentWindow; var searchBar = Titanium.UI.createSearchBar({ showCancel:true, height:43, top:0 }); var tableView = Titanium.UI.createTableView({ top:43 }); win.add(searchBar); win.add(tableView); //@appceleratorのtweetを取得 var url = 'http://search.twitter.com/search.json'; var refreshTimeline = function(){ //alert("読み込むよ!"); if(Titanium.Network.online != false){ //HTTPclientオブジェクト生成 var xhr = Titanium.Network.createHTTPClient(); xhr.open('GET',url,false); //レスポンスを受け取るイベント(非同期に実行させる) xhr.onload = function(){ //表示内容をいったんクリアする tableView.data = []; //受け取ったJSONデータをパース var json = JSON.parse(this.responseText); //JSON構造が違うため、json.lengthではなく、json.results.length for(var i=0; i<json.results.length; i++){ var tweet = json.results[i]; tweet.user = {}; tweet.user.screen_name = tweet.from_user; tweet.user.name = tweet.from_user; tweet.user.profile_image_url = tweet.profile_image_url; //ここからは基本的に同じ var row = Titanium.UI.createTableViewRow(); row.height = 180; row.add(Titanium.UI.createLabel({ //tweet変数を経由して取得する text:tweet.user.screen_name, top:8, left:64, height:16 })); row.add(Titanium.UI.createLabel({ text:tweet.text, top:32, left:64, width:256, height:'auto' })); row.add(Titanium.UI.createImageView({ image:tweet.user.profile_image_url, top:8, left:8, width:48, height:48 })); tableView.appendRow(row); } }; //error xhr.onerror = function(error){ //error message alert(error); }; //send xhr.send({ q:searchBar.value, lang:'ja', locale:'ja' }); }else{ //error alert('offline'); } } refreshTimeline(); //ウィンドウの右上のボタンを設定 var rightButton = Titanium.UI.createButton({ //title:'再読込' systemButton:Titanium.UI.iPhone.SystemButton.REFRESH }); win.rightNavButton = rightButton; rightButton.addEventListener('click',function(){ //alert('onbt'); refreshTimeline(); }); //検索開始とキーボートを閉じるイベントを設定する searchBar.addEventListener('cancel',function(){ searchBar.blur(); }); searchBar.addEventListener('return',function(){ //検索語の保存 Titanium.App.Properties.setString('query_string',searchBar.value); searchBar.blur(); refreshTimeline(); }); //保存された検索語があれば初期表示 if (Titanium.App.Properties.getString('query_string',null)) { searchBar.value = Titanium.App.Properties.getString('query_string'); refreshTimeline(); };
このページへのコメント
wkwnF0 Im obliged for the article post.Really looking forward to read more. Keep writing.
kRTA6u Awesome article post.Much thanks again. Really Great.
4YlVdk <a href="http://yegolxnkrulp.com/">yegolxnkrulp</a>, [url=http://lygdryxqtfmi.com/]lygdryxqtfmi[/url], [link=http://mqvmcljwloko.com/]mqvmcljwloko[/link], http://omqfhsgpexbk.com/
WZBgaf <a href="http://qhblmjglthyx.com/">qhblmjglthyx</a>, [url=http://giolrgbpispe.com/]giolrgbpispe[/url], [link=http://rmydsrfqcxvd.com/]rmydsrfqcxvd[/link], http://ublfqugbtowj.com/
I truly appreciate this article.Really looking forward to read more. Awesome.
https://www.filesanywhere.com/fs/v.aspx?v=8b6b698f...