Как вернуть URL ресурса из цели C в javascript в проекте iOS cordova?
Я пытаюсь проект Cordova для IOS. Я получил URL ресурса в своем журнале, и я попытался с этим URL в моем коде, и он отлично работает. Но мне нужен этот URL-адрес актива как возвращаемое значение из цели C в javascript.
- (void)saveImageDataToLibrary:(CDVInvokedUrlCommand*)command{
self.callbackId = command.callbackId;
NSData* imageData = [NSData dataFromBase64String:[command.arguments objectAtIndex:0]];
UIImage* image = [[[UIImage alloc] initWithData:imageData] autorelease];
UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
UIImage *viewImage = image; // --- mine was made from drawing context
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
// Request to save the image to camera roll
[library writeImageToSavedPhotosAlbum:[viewImage CGImage] orientation:(ALAssetOrientation)[viewImage imageOrientation] completionBlock:^(NSURL *assetURL, NSError *error){
if (error) {
NSLog(@"error");
} else {
NSLog(@"url %@", assetURL);
}
}];
[library release];
}
- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
// Was there an error?
if (error != NULL)
{
// Show error message...
NSLog(@"ERROR: %@",error);
CDVPluginResult* result = [CDVPluginResult resultWithStatus: CDVCommandStatus_ERROR messageAsString:error.description];
[self.webView stringByEvaluatingJavaScriptFromString:[result toErrorCallbackString: self.callbackId]];
}
else // No errors
{
// Show message image successfully saved
NSLog(@"IMAGE SAVED!");
CDVPluginResult* result = [CDVPluginResult resultWithStatus: CDVCommandStatus_OK messageAsString:@"Image saved"];
[self.webView stringByEvaluatingJavaScriptFromString:[result toSuccessCallbackString: self.callbackId]];
}
}
Вот.... Этот код дает мне журнал....
NSLog(@"url %@", assetURL);
Я хотел бы получить это assetURL
как мое возвращаемое значение в мой JavaScript, где я вызываю эту функцию...
Я застрял здесь на неделю...
Помоги мне избавиться от этого...
Спасибо заранее.....
1 ответ
Решение
Спасибо всем, кто попробовал это.... Я получил это после некоторых поисков.... Я добавил код после этой строки NSLog в коде, показанном выше... Это выглядит следующим образом...
NSLog(@"url %@", assetURL);
CDVPluginResult* result = [CDVPluginResult resultWithStatus: CDVCommandStatus_OK messageAsString:[assetURL absoluteString]];
[self.webView stringByEvaluatingJavaScriptFromString:[result toSuccessCallbackString: self.callbackId]];