从一个UIWebView在iPhone SDK的下载文件

有什么办法来下载文件从UIWebView我我使用此代码IBAction事件

- (IBAction)saveFile:(id)sender { // Get the URL of the loaded ressource NSURL *theRessourcesURL = [[self.webDisplay request] URL]; NSString *fileExtension = [theRessourcesURL pathExtension]; if ([fileExtension isEqualToString:@"png"] || [fileExtension isEqualToString:@"jpg"] || [fileExtension isEqualToString:@"pdf"] || [fileExtension isEqualToString:@"html"]) { // Get the filename of the loaded ressource form the UIWebView's request URL NSString *filename = [theRessourcesURL lastPathComponent]; NSLog(@"Filename: %@", filename); // Get the path to the App's Documents directory NSString *docPath = [self documentsDirectoryPath]; // Combine the filename and the path to the documents dir into the full path NSString *pathToDownloadTo = [NSString stringWithFormat:@"%@/%@", docPath, filename]; // Load the file from the remote server NSData *tmp = [NSData dataWithContentsOfURL:theRessourcesURL]; // Save the loaded data if loaded successfully if (tmp != nil) { NSError *error = nil; // Write the contents of our tmp object into a file [tmp writeToFile:pathToDownloadTo options:NSDataWritingAtomic error:&error]; if (error != nil) { NSLog(@"Failed to save the file: %@", [error description]); } else { // Display an UIAlertView that shows the users we saved the file :) UIAlertView *filenameAlert = [[UIAlertView alloc] initWithTitle:@"File saved" message:[NSString stringWithFormat:@"The file %@ has been saved.", filename] delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil]; [filenameAlert show]; [filenameAlert release]; } } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"File could not be loaded" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil]; [alert show]; [alert release]; // File could notbe loaded -> handle errors } } else { UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Warning" message:@"File type not supported" delegate:nil cancelButtonTitle:@"Okay" otherButtonTitles:nil]; [alert show]; [alert release]; // File type not supported }

}这段代码在打开文件UIWebView ,我想下载,当我按下按钮打开的文件保存得到。 但我希望我UIWebView表现得像个正常的浏览器,当下载链接出现在它和用户按下它, UIWebView展示与选项打开或保存对话框中,如果用户按下保存文件得到自动保存,如果用户按下打开它的文件应该在打开UIWebView

--------------解决方案-------------

您可以提供webView:shouldStartLoadWithRequestUIWebViewDelegate所以每次用户将移动到另一个网页,你必须检查链接是什么样子的机会:

- (BOOL)webView:(UIWebView*)webView shouldStartLoadWithRequest:(NSURLRequest*)request navigationType:(UIWebViewNavigationType)navigationType {

if ([[[request URL] scheme] isEqual:@"http"] &&
[[[request URL] pathExtension]...])
<your download/save code here>
return NO; //-- no need to follow the link
}
return YES; //-- otherwise, follow the link
}

分类:iphone 时间:2012-01-01 人气:0
本文关键词: iphone,IOS的UIWebView
分享到:

相关文章

  • 如何发出从JavaScript通知/警报时,应用程序在后台 - PhoneGap的iPhone / iOS版 2012-12-14

    我想发出一个通知/警报的用户 - 基于从秒表发出一个定时事件. 其中的逻辑是在JavaScript中,应用程序在运行的PhoneGap iPhone上. 问题:iPhone暂停执行JavaScript在iPhone / iOS的web视图当应用程序在后台运行. 触发本地警告​​对话框,例如使用的PhoneGap的navigator.notification.alert()失败,因为该警报是根本就没有,而在后台调用. 我怎样才能有效地,例如,UILocalNotification结合呢? - 任何

  • 中断来电/短信对iPhone iOS 5 2013-04-20

    我们可以中断对iPhone IOS 5来电/短信? 任何代码样本? 我找了一个应用程序的一些代码示例当呼叫来电/去电从手机/,并获取主叫号码,获取通知. 对于短信同样的事情. 我知道这似乎是间谍,但是这在最后的目的是远路的那. --------------解决方案------------- 我要这个从非越狱的位置(因为你没有在你的问题中指定它). 我们可以中断对iPhone IOS 5来电/短信? 号绝对不是. 在此过程中,你需要三样东西: 一个监听来电/短信的 事件时调用一个电话或短信传入.

  • iPhone / IOS SDK:如何删除/清除用户的文件,如果应用程序更新 2013-04-22

    我的iPhone / iOS的应用程序具有密码保护设置页面. 当用户创建一个密码,我在图书馆/缓存目录中的文件保存密码. 我的问题是:如果用户忘记了密码,他/她有权删除应用程序,并重新安装它,密码文件将被删除. 刚刚更新的应用程序不会删除密码文件. 我想删除/清除此文件时,应用程序更新? 我该怎么办呢? 谢谢 --------------解决方案------------- 你想实现什么目标是有点混乱,却忽略了:每一个应用程序运行时,当它启动时,读一个特殊的文件的内容. 如果该文件不存在,或者如果

  • 分析服务/可为iPhone / iOS平台库? 2014-08-22

    什么分析库/服务是否有适用于iPhone / iOS平台,以收集有关我的应用程序使用数据? 至少以下服务是可用的: 乱舞Analytics(分析) Localytics Medialets 最好的图书馆应报告为多,因为它可以自动完成,但也要允许应用程序作者定义的跟踪事件. 另外,最好它应该包括某种服务(可能是基于Web)中提出的分析数据. --------------解决方案------------- 我在我的应用程序使用乱舞和它的作品相当不错的. 有很多关于应用程序的使用信息的,它是由库自动上

  • 从iPhone / IOS令牌传递到网站 2014-09-28

    我想创造和传承的iPhone / ios的一个认证/身份令牌并发送令牌到网站. 该网站可以利用这个令牌,使用此令牌验证用户/登录. 我不知道如何做到这一点在iOS上,我希望有人能帮助我在此. 有任何想法吗 ? --------------解决方案------------- 我在过去的方法是使用ASIHTTPRequest库发送请求到服务器的登录信息. 这个问题解决了ASIHTTPRequest各种安全问题.

  • iPhone - 让一个UIWebView子视图滚动时用户触摸状态栏顶部(的iOS 4) 2012-01-18

    我有一个包含MAINVIEW: 分页滚动视图, 页面控制 关闭按钮 和滚动视图的每一页包含一个包含网页视图子视图. 用户可以从左至右页面的网页,以及上下滚动每个web视图. 但是...我怎么能挣钱的时候,用户触摸状态栏中显示当前web视图滚动到顶部? 编辑:对于课程的iOS4的. --------------解决方案------------- [yourPaginatedScrollView setScrollsToTop:NO]; [(UIScrollView *)[yourWebView.s

  • iOS版 - UIWebView的 - 需要提交的表单在Safari中打开 2012-02-15

    我一直在开发一个HTML5 / Javascript web应用的iOS平台. 我是比较新的目标和XCode的,但我知道我的程序相反. 我试图有一个UIWebView在Safari中打开一个表格,一旦提交(submit按钮),而不是当前的UIWebView打开它. 下面的代码,建议打开标准<a>在Safari标签: -(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest na

  • 如何启用在IPhone应用在UIWebView的“全选”? 2012-03-16

    我写这封信中嵌入一个UIWebView的IPhone应用程序. 有喜欢像导航等功能,各种狩猎一个我找的任务是当用户选择上的Web视图一段文字提出了"全选"选项. 目前,我只看到一个"副本"选项. 有一个简单的方法,使"全选"菜单项? 我已经ofcourse尝试添加菜单项的共享菜单控制器,但并不一定执行原野生动物园"全选"功能. 任何帮助和指针将是非常有用的. 提前致谢. --------------解决方案----------

  • 如何从YouTube上播放iphone没有一个UIWebView 2012-04-21

    可能重复: 加载的YouTube应用程序之外 我需要启动YouTube播放器的iPhone没有UIWebView . 喜欢这个. --------------解决方案------------- 您应该能够通过只打开URL打开的YouTube应用程序: NSString *stringURL = @"http://www.youtube.com/v/oHg5SJYRHA0&f=gdata_videos"; NSURL *url = [NSURL URLWithString:str

  • 获取行从iPhone IOS SQLite数据库计数 2012-06-18

    背景 一整天我一直在试图解决一个问题,我读了所有我能找到在互联网上的文章和文件,但我解决不了这个. 我写的iPhone应用程序,我需要一个SQLite数据库 (sqlite3的 )工作. 主要问题 我创建了我的数据库和一切是怎么回事,直到好我想获得的行数在我的表. 表名是ARTICLES ,所以我写了 SELECT COUNT(*) FROM ARTICLES 我的程序不执行任何操作,并在日志中写道: 未知错误. const char *query = "SELECT COUNT (*) FRO

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.261 (s). 10 q(s)