我正在尝试通过webview实现照片上传系统。
我通过safari浏览器工作,但还没有通过webview工作。我的研究让我意识到我需要使用UIImagePickerController来捕获图像文件路径,并且有这个方法:
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSString *path = [[NSBundle mainBundle] bundlePath];
NSData *data = UIImageJPEGRepresentation( [info objectForKey:@"UIImagePickerControllerOriginalImage"] , 1.0);
NSString *fullPath = [path stringByAppendingPathComponent:@"image_tmp.jpg"];
if ([[NSFileManager defaultManager] createFileAtPath:fullPath contents:data attributes:nil] ) {
NSLog([NSString stringWithFormat:@"file successfully written to path %@",fullPath],nil);
}
}
但是,我无法解决如何通过UIImagePickerController拦截和响应ajax调用。
答案 0 :(得分:0)
经过一些实验,我已经找到了解决问题的方法。可以这么说,我似乎过度设计了这个问题。
我的AJAX调用需要简单地返回图像路径,其余部分将由服务器端处理。我的所有研究都指出UIImagePickerController是返回图像路径所必需的,但事实并非如此。
- (void)viewWillAppear:(BOOL)animated {
if(animated){
NSLog(@"YES");
}else{
NSLog(@"NO");
NSString *url = [NSString stringWithFormat:@"http://www.mywebview.com/photo-upload.php"];
[photoview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:url]]];
timer = [NSTimer scheduledTimerWithTimeInterval:(1.0/2.0) target:self selector:@selector(tick) userInfo:nil repeats:YES];
}
}
通过使用viewWillAppear并为动画返回一个布尔值,我能够判断该调用是用于页面加载还是用于AJAX调用。实际上是页面重新加载阻止了上传,文件路径一直在传递......简单的监督是一个相当新的iOS开发人员,但也许这将有助于处于类似情况的人。
如果有人可以详细说明或整理我的代码/解释,请执行!