从应用程序包中预加载HTML文件在UIWebView中显示之前

时间:2012-10-02 11:13:33

标签: iphone objective-c ios xcode uiwebview

我有一个我正在为iPhone工作的应用程序,它将支持iOS 5.0及更高版本。该应用程序本质上是一个基于信息的应用程序,它使用类似于Path& amp;的滑动视图控制器。 Facebook的。将新视图推送到堆栈的表视图。我选择在UIWebView中显示一些内容,这些内容从包中本地加载大量HTML文件,主要是因为信息是静态的,它允许我非常容易地设置样式。

我对自己的表现一无所知。发送视图控制器根据在表视图中选择的indexPath.row传递必要HTML文件的名称。 Webview在viewDidLoad方法中填充如下:

[_detailsWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource: _htmlFile ofType:@"html"] isDirectory:NO]]];

该应用程序支持iOS 5及更高版本,这意味着我正在关注iPod touch第三代和第四代iPhone 3GS,iPhone 4和4S以及iPhone 5和新款iPod touch。在iPhone 5上,UIWebView加载了本地HTML文件而非正常,但是在旧设备上填充它会有延迟。

有没有办法在转到显示ViewController的viewDidLoad方法之前预加载HTML文件?

2 个答案:

答案 0 :(得分:0)

制作一个你想要预加载HTML文件的方法,即ViewController

-(void)loadHTMLFiles:(NSString*)htmlFile
{
    //I assume u have set IBOutlet of detailsWebView 
   [_detailsWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:htmlFile ofType:@"html"] isDirectory:NO]]];
}

现在推送你的newView即ViewController:

 [ViewController *objViewController = [ViewController alloc]init];
 //here newView is pushed in navigation or add SubView
[objViewController loadHTMLFiles:yourHTMLFileName];

答案 1 :(得分:0)

我怀疑如果您只是将文件读入NSData对象,然后释放该对象,这将有很大帮助。想法是将文件加载到文件系统缓存中,因此当Web视图想要读取它们时它们已经存在。首先尝试这是最简单的事情。