如何在iOS cordova项目中从objective C返回一个资源url到javascript
How to return an asset url from objective C to javascript in iOS cordova project?
我正在尝试ios的cordova项目。我在日志中有一个资产url,我尝试在代码中使用那个url,它工作得很好。但是,我需要资产url作为从objective 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,在那里我调用这个函数…
我已经在这里呆了一个星期了…
帮我从这个…中解脱出来
Thnx提前.....
感谢所有尝试过....的经过一番搜索,我找到了....我在上面显示的代码中添加了NSLog行之后的代码………
NSLog(@"url %@", assetURL);
CDVPluginResult* result = [CDVPluginResult resultWithStatus: CDVCommandStatus_OK messageAsString:[assetURL absoluteString]];
[self.webView stringByEvaluatingJavaScriptFromString:[result toSuccessCallbackString: self.callbackId]];
相关文章:
- WebResources嵌入式资源和Javascript如何在另一个嵌入式资源中使用它们
- AngularJS多资源调用,只处理最后一个
- 检查资源的id是否在ng重复中显示的另一个资源的id列表中
- 关于如何使用BusterJs资源配置选项的一个好例子
- 完整日历在多个资源上添加一个事件
- 给定一个 url,脚本如何找到加载的资源
- 我得到了一个“;未能加载资源“;在尝试运行空白离子启动器应用程序时出现Cordova错误
- 如何使用Angular 2服务提供包含指向另一个资源的链接/ids的资源集合
- 是否有任何事件在浏览器请求另一个资源(如图像)之前触发
- 从另一个域加载 CSS 和 JS 文件,并从一致的 URL 提供资源
- AngularJS,创建一个资源哈希
- 一个简单窗口的计算资源密集度.包含函数
- Angularjs资源错误:a.push不是一个函数
- 一个程序PhantomJS如何等待AngularJS$资源解析,然后再尝试测试返回的数据
- 从另一个javascript网络资源调用javascript函数
- servlet过滤器中的静态资源版本控制(添加一个额外的GET参数)
- Javascript' setInterval循环是一个资源消耗者吗?
- 如何在iOS cordova项目中从objective C返回一个资源url到javascript
- 用ngResource、socket维护一个资源集合.IO和$q
- 如何在angularjs中传递一个JSON对象给一个资源