如何在UIWebView中跳转pdf页面?

时间:2011-09-14 13:06:57

标签: objective-c ios ios4 uiwebview

我正在尝试逐页滚动pdf文件

这是我的代码

-(void)viewDidLoad{

NSString *path = [[NSBundle mainBundle] pathForResource:@"myPdffile" ofType:@"pdf"];

NSURL *url = [NSURL fileURLWithPath:path];

NSURLRequest *urlrequest = [NSURLRequest requestWithURL:url];

[webview loadRequest:urlrequest];

webview.scalesPageToFit = YES;

[super viewDidLoad];

}

//goto next page

-(IBAction)nextpage{

        [webview stringByEvaluatingJavaScriptFromString: ?????? ];
}

//goto previous page

-(IBAction)prevpage {

       ?????
}

我应该在stringByEvaluatingJavaScriptFromString之后放什么?

我在“prevpage”中输入相同的代码吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

在iOS 5中,您可以将此语句用于页面跳转

[[webView scrollView] setContentOffset:CGPointMake(0,y) animated:YES];

在iOS 5下面你可以使用这个声明

[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, %f)", y]];

y是你要跳的高度。

这里我正在为下一页和上一页编写一些示例代码

-(IBAction) nextPage: (id) sender
{
    if (currentPage < numberOfPages) 
    {
        float y =  pageHeight * currentPage++;

        if (isIOSAbove4) 
        {
            [[webView scrollView] setContentOffset:CGPointMake(0,y) animated:YES];
        }
        else
        {
            [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, %f)", y]];
        }
    }
}

上一页:

-(IBAction) prevPage: (id) sender
{   
    if (currentPage - 1)
    {
        float y = --currentPage * pageHeight - pageHeight;
        if (isIOSAbove4) 
        {
            [[webView scrollView] setContentOffset:CGPointMake(0,y) animated:YES];
        }
        else
        {
            [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"window.scrollTo(0.0, %f)", y]];
        }
    }
}

在上面的示例代码中,isioAbove4在pch文件中定义

#define isIOSAbove4 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 5.0)

希望上面的代码能解决你的问题

答案 1 :(得分:0)

我不相信有办法做到这一点,在其他网页浏览器/ PDF查看器中你可以使用querystring参数?page = 6但是这似乎不受WebKit PDF引擎的支持

答案 2 :(得分:0)

我遇到了类似的问题,我必须在tableView(缩略图tableview)中选择单元格时导航到PDF中的特定页面(使用UIWebView显示)。

所以我编写了一段代码,允许您滚动到PDF中的特定页面。即使PDF处于缩放状态,这也有效。您可以找到代码here