mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
Merge pull request #2111 from NativeScript/widgets-ios-async-image
Optional async mode for loading images from local files
This commit is contained in:
@@ -98,27 +98,14 @@ export function request(options: http.HttpRequestOptions): Promise<http.HttpResp
|
||||
},
|
||||
toImage: () => {
|
||||
ensureImageSource();
|
||||
if (UIImage.imageWithData["async"]) {
|
||||
return UIImage.imageWithData["async"](UIImage, [data])
|
||||
.then(image => {
|
||||
if (!image) {
|
||||
throw new Error("Response content may not be converted to an Image");
|
||||
}
|
||||
|
||||
var source = new imageSource.ImageSource();
|
||||
source.setNativeSource(image);
|
||||
return source;
|
||||
});
|
||||
}
|
||||
|
||||
return new Promise<any>((resolveImage, rejectImage) => {
|
||||
var img = imageSource.fromData(data);
|
||||
if (img instanceof imageSource.ImageSource) {
|
||||
resolveImage(img);
|
||||
} else {
|
||||
rejectImage(new Error("Response content may not be converted to an Image"));
|
||||
}
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
(<any>UIImage).tns_decodeImageWithDataCompletion(data, image => {
|
||||
if (image) {
|
||||
resolve(imageSource.fromNativeSource(image))
|
||||
} else {
|
||||
reject(new Error("Response content may not be converted to an Image"));
|
||||
}
|
||||
});
|
||||
});
|
||||
},
|
||||
toFile: (destinationFilePath?: string) => {
|
||||
|
||||
@@ -33,12 +33,9 @@ export function getJSON<T>(arg: any): Promise<T> {
|
||||
}
|
||||
|
||||
export function getImage(arg: any): Promise<image.ImageSource> {
|
||||
return new Promise<image.ImageSource>((resolve, reject) => {
|
||||
httpRequest.request(typeof arg === "string" ? { url: arg, method: "GET" } : arg)
|
||||
.then(r => {
|
||||
r.content.toImage().then(source => resolve(source), e => reject(e));
|
||||
}, e => reject(e));
|
||||
});
|
||||
return httpRequest
|
||||
.request(typeof arg === "string" ? { url: arg, method: "GET" } : arg)
|
||||
.then(responce => responce.content.toImage());
|
||||
}
|
||||
|
||||
export function getFile(arg: any, destinationFilePath?: string): Promise<any> {
|
||||
|
||||
Reference in New Issue
Block a user