From 42237d14c51ffb3df5438181fb027de78723333f Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 17 Mar 2014 14:30:03 +0200 Subject: [PATCH 1/2] iOS web client imporved --- WebClient/Readme.md | 33 ++++++++++++++------------------- WebClient/web_client.android.ts | 4 ++-- WebClient/web_client.d.ts | 6 ++++-- WebClient/web_client.ios.ts | 19 +++++++++++++------ 4 files changed, 33 insertions(+), 29 deletions(-) diff --git a/WebClient/Readme.md b/WebClient/Readme.md index 6da412a82..592a36992 100644 --- a/WebClient/Readme.md +++ b/WebClient/Readme.md @@ -1,25 +1,20 @@ Sample code: ``` -var web_module = require("web_client"); -var image_module = require("image"); + var webClientModule = require("WebClient/web_client"); + var webClient = webClientModule.tk.web.Client; -var client = new web_module.tk.web.Client(); -client.downloadString("http://www.reddit.com/r/aww.json?limit=10", - function(result) { - Log("Result:" + result); - }, - function(e) { - Log("Error:" + e.message); - }); -``` + var client = new webClient(); -``` + client.getString("http://www.reddit.com/", function(result) { + // Result is string! + }, function(e) { log("Error:" + e.message);}); + + client.getJSON("http://www.reddit.com/r/aww.json?limit=10", function(result) { + // Result is JSON! + }, function(e) { log("JSON:" + e.message);}); + + client.getImage("http://www.telerik.com/sfimages/default-source/Homepage/hp_any_approachf6e4079a7a99493a8ab2e367b9cb3f7d.png", function(result) { + // Result is tk.ui.Image! + }, function(e) { Log("Error:" + e.message); }); -var client = new web_module.tk.web.Client(); -client.downloadImage("http://www.telerik.com/sfimages/default-source/Homepage/hp_any_approachf6e4079a7a99493a8ab2e367b9cb3f7d.png", - function(image){ // This is image_module.tk.ui.Image - }, - function(e) { - Log("Error:" + e.message); - }); ``` \ No newline at end of file diff --git a/WebClient/web_client.android.ts b/WebClient/web_client.android.ts index 59e7e548f..1c4567dff 100644 --- a/WebClient/web_client.android.ts +++ b/WebClient/web_client.android.ts @@ -9,7 +9,7 @@ export module tk { /** * Downloads string from url. */ - public downloadString(url: string, successCallback: (result: string) => void, errorCallback?: (e: Error) => void) { + public getString(url: string, successCallback: (result: string) => void, errorCallback?: (e: Error) => void) { try { if (successCallback) { var httpClient = new org.apache.http.impl.client.DefaultHttpClient(); @@ -28,7 +28,7 @@ export module tk { } } - public downloadImage(url: string, successCallback: (image: image_module.tk.ui.Image) => void, errorCallback?: (e: Error) => void) { + public getImage(url: string, successCallback: (result: image_module.tk.ui.Image) => void, errorCallback?: (e: Error) => void) { try { if (successCallback) { var image = new image_module.tk.ui.Image(); diff --git a/WebClient/web_client.d.ts b/WebClient/web_client.d.ts index c5a301851..2b0b2d34b 100644 --- a/WebClient/web_client.d.ts +++ b/WebClient/web_client.d.ts @@ -8,8 +8,10 @@ export declare module tk { * The Client interface. */ export class Client { - downloadString(url: string, successCallback: (result: string) => void, errorCallback?: (e: Error) => void) - downloadImage(url: string, successCallback: (image: image_module.tk.ui.Image) => void, errorCallback?: (e: Error) => void) + static get(url: string, successCallback: (result: any) => void, errorCallback?: (e: Error) => void) + getString(url: string, successCallback: (result: string) => void, errorCallback?: (e: Error) => void) + getJSON(url: string, successCallback: (result: Object) => void, errorCallback?: (e: Error) => void) + getImage(url: string, successCallback: (result: image_module.tk.ui.Image) => void, errorCallback?: (e: Error) => void) } } } \ No newline at end of file diff --git a/WebClient/web_client.ios.ts b/WebClient/web_client.ios.ts index e1e94887f..7908bedf4 100644 --- a/WebClient/web_client.ios.ts +++ b/WebClient/web_client.ios.ts @@ -9,16 +9,24 @@ export module tk { /** * Downloads string from url. */ - public downloadString(url: string, successCallback: (result: string) => void, errorCallback?: (e: Error) => void) { - Client.getDataFromUrl(url, function (data) { + public getString(url: string, successCallback: (result: string) => void, errorCallback?: (e: Error) => void) { + Client.get(url, function (data) { if (successCallback) { successCallback(Foundation.NSString.initWithDataEncoding(data, 4)); } }, errorCallback); } - public downloadImage(url: string, successCallback: (image: image_module.tk.ui.Image) => void, errorCallback?: (e: Error) => void) { - Client.getDataFromUrl(url, function (data) { + public getJSON(url: string, successCallback: (result: Object) => void, errorCallback?: (e: Error) => void) { + this.getString(url, function (data) { + if (successCallback) { + successCallback(JSON.parse(data)); + } + }, errorCallback); + } + + public getImage(url: string, successCallback: (result: image_module.tk.ui.Image) => void, errorCallback?: (e: Error) => void) { + Client.get(url, function (data) { if (successCallback) { var image = new image_module.tk.ui.Image(); image.loadFromData(data); @@ -27,8 +35,7 @@ export module tk { }, errorCallback); } - private static getDataFromUrl(url: string, successCallback: (result: any) => void, errorCallback?: (e: Error) => void) - { + public static get(url: string, successCallback: (result: any) => void, errorCallback?: (e: Error) => void) { try { var sessionConfig = Foundation.NSURLSessionConfiguration.defaultSessionConfiguration(); var queue = Foundation.NSOperationQueue.mainQueue(); From 422c2d4aa8bd40c3d20cec7cbddf079a37f850cd Mon Sep 17 00:00:00 2001 From: Vladimir Enchev Date: Mon, 17 Mar 2014 14:31:55 +0200 Subject: [PATCH 2/2] readme fixed --- WebClient/Readme.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/WebClient/Readme.md b/WebClient/Readme.md index 592a36992..30239fbc3 100644 --- a/WebClient/Readme.md +++ b/WebClient/Readme.md @@ -7,14 +7,14 @@ client.getString("http://www.reddit.com/", function(result) { // Result is string! - }, function(e) { log("Error:" + e.message);}); + }, function(e) { console.log("Error:" + e.message); }); client.getJSON("http://www.reddit.com/r/aww.json?limit=10", function(result) { // Result is JSON! - }, function(e) { log("JSON:" + e.message);}); + }, function(e) { console.log("Error:" + e.message); }); client.getImage("http://www.telerik.com/sfimages/default-source/Homepage/hp_any_approachf6e4079a7a99493a8ab2e367b9cb3f7d.png", function(result) { // Result is tk.ui.Image! - }, function(e) { Log("Error:" + e.message); }); + }, function(e) { console.log("Error:" + e.message); }); ``` \ No newline at end of file