Skip to content

Instantly share code, notes, and snippets.

@ryugoo
Created October 2, 2012 07:40
Show Gist options
  • Save ryugoo/3817086 to your computer and use it in GitHub Desktop.
Save ryugoo/3817086 to your computer and use it in GitHub Desktop.
HTTP Client (Callback pattern)
(function () {
var getContent = function (paramsObj) {
// HTTP Client
var xhr = Ti.Network.createHTTPClient();
// Onload handler
xhr.onload = function () {
// 今回は Twitter のタイムライン情報 (JSON) を取ってくるので、 responseText を使う
paramsObj.success(xhr.responseText);
};
// Error handler
xhr.error = function (xhrErr) {
paramsObj.error();
};
// XHR open method
xhr.open(paramsObj.method, paramsObj.url);
// XHR send method
xhr.send(paramsObj.params);
};
var wrapper = Ti.UI.createWindow();
var base = Ti.UI.createWindow({
title: "Base",
backgroundColor: "#FFFFFF"
});
var button = Ti.UI.createButton({
title: "Get Content"
});
button.addEventListener("click", function (clickEvt) {
getContent({
method: "GET",
url: "http://api.twitter.com/1/statuses/user_timeline.json?screen_name=TitaniumMobileJ",
params: null,
success: function (data) {
// データの取得後に行いたい処理を書く
data = JSON.parse(data);
alert("データの取得に成功しました!");
alert(data);
},
error: function (data) {
// データの取得に失敗したら行いたい処理を書く
alert("データの取得に失敗しました。");
alert(JSON.stringify(data));
}
});
});
base.add(button);
var navGroup = Ti.UI.iPhone.createNavigationGroup({
window: base
});
wrapper.add(navGroup);
wrapper.open();
}());
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment