如何阅读 webview 中资源文件夹子文件夹中的 PDF 文件?
Posted
技术标签:
【中文标题】如何阅读 webview 中资源文件夹子文件夹中的 PDF 文件?【英文标题】:How to Read PDF file which is in subfolder of Resourse folder in webview? 【发布时间】:2012-08-04 11:10:25 【问题描述】:我的应用程序的 Resourse 文件夹的子文件夹中有一些 PDF 格式文档。我尝试像这样阅读这些文档。这是我的代码。
NSString *path = [[NSBundle mainBundle] pathForResource:chapter ofType:@"pdf"];
NSURL *targetURL = [NSURL fileURLWithPath:path];
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL];
[[webView scrollView] setContentOffset:CGPointMake(0,500) animated:YES];
[webView stringByEvaluatingjavascriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, 50.0)"]];
[webView loadRequest:request];
[self.view addSubview:webView];
[webView release];
在此代码中“路径”返回零值,当我签入控制台时。但是当我检查存储我想要的 pdf 文档名称的字符串“章节”时,它总是有一个 pdf 文档名称。当我在控制台中程序崩溃了,它显示了这样的东西。
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason:
'-[UIWebView scrollView]: unrecognized selector sent to instance 0x6587d20'
任何帮助都会被给予。
【问题讨论】:
这里 pathForResource 是字符串,并检查您提供的字符串是否正确。你提供的章节是什么??是字符串吗? 章节是包含我想要的文档名称的字符串。 删除这一行 [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, 50.0)"]];删除此行作为您的设置内容偏移量为 500 【参考方案1】:您是否在项目中查看您的 pdf 文件?
我测试了以下代码。没问题。
请检查项目中的 chapter.pdf 文件。该点是相对路径。
必须区分大小写。 "Chapter" / "chapter" 不是 equalString。
NSLog(@"path:%@",[[NSBundle mainBundle] pathForResource:@"chapter" ofType:@"pdf"]);
console:
/var/mobile/Applications/72AFA069-D83E-469A-A687-AEAFDB0B4D97/TableViewTest.app/chapter.pdf
NSLog(@"path:%@",[[NSBundle mainBundle] pathForResource:@"Chapter" ofType:@"pdf"]);
console:
(null)
self.myWebView = [[[UIWebView alloc] initWithFrame:webFrame] autorelease];
self.myWebView.backgroundColor = [UIColor whiteColor];
self.myWebView.scalesPageToFit = YES;
self.myWebView.delegate = self;
[self.view addSubview:self.myWebView];
[self.myWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"chapter" ofType:@"pdf"]]]];
在您的项目文件夹中,名称将在实际的 iPhone 包中消失。 您创建了一个名为 Resource-Common 的文件夹,但最终在 NSBundle 中消失了。
见下图。两者都是集成的。项目中的文件夹名称只是xcode中可见的文件夹。
如果你想要 NSBundle 中的所有 pdf 文件列表。尝试以下代码。
NSArray *pdfCollection = [[NSBundle mainBundle] pathsForResourcesOfType:@"pdf" inDirectory:nil];
【讨论】:
必须区分大小写。 “章节”/“章节”不等于字符串。 您是否在链接中发布下载代码?目前,我不知道到底是什么问题。 什么是章节???请尝试以下方法。 NSString *str = @"你的pdf文件名"; // NSString *path = [[NSBundle mainBundle] pathForResource:str ofType:@"pdf"]; “章节” 我真的想在解决的时候帮助你。我重新编辑了我的帖子。最后一行请退房。【参考方案2】:根据 Apple 的doc,UIWebView 的 scrollView 是一个只读属性:与 web 视图关联的滚动视图。 (只读)。但是你把它当作一个 UIScrollView 来对待,但它不是。那是错误信息。
【讨论】:
以上是关于如何阅读 webview 中资源文件夹子文件夹中的 PDF 文件?的主要内容,如果未能解决你的问题,请参考以下文章