7

大家,

我有一个 HTML 页面,其中包含一个显示一种动物动画的 Javascript 函数。我已将其本地添加到 xcode 项目中。

现在,当我在 UIWebView 中加载此文件时,它看起来很完美。这是将 HTMl 文件加载到 UIWebView 的代码

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"elephant-animation" ofType:@"html"] isDirectory:NO];
        NSURLRequest *req = [NSURLRequest requestWithURL:url];
        [self performSelectorOnMainThread:@selector(startWebLoad3:) withObject:req waitUntilDone:YES];

-(void)startWebLoad3:(NSURLRequest *)request
{
    [wbView3 loadRequest:request];
    [wbView3 setBackgroundColor:[UIColor clearColor]];
    wbView3.scrollView.scrollEnabled = NO;
    [wbView3.scrollView setBackgroundColor:[UIColor clearColor]];
    [wbView3 setOpaque:NO];
}

但我有 6 页。当开始使用单独的 UIWebView 加载每个页面时,它会出现内存警告。并给我像这里这样的错误。

void SendDelegateMessage(NSInvocation*): delegate (webView:didFinishLoadForFrame:) failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode

如果我只运行一页而不是完美运行,但是当我开始一起或一页一页地加载时,它会因内存警告而崩溃。

让我知道是否有人得到任何解决方案..

我一直坚持这个问题..

谢谢,

4

4 回答 4

2

终于我得到了解决方案..经过长期的研发,得到了一些有效的解决方案......

"JavaScript execution time is limited to 10 seconds for each top-level entry point. If your script executes for more than 10 seconds, the web view stops executing the script"

这就是为什么我无法在 UIWebView 中加载 html 页面的原因。而 iPad 仅在 App 启动时处理高达 3 MB 的数据加载。而且我使用的比它更多。

所以,我根据要求更改了javascript,现在工作了..

感谢您参与其中。。

于 2012-05-11T11:51:14.817 回答
1
static NSInteger currentIndex = 0;
if (currentIndex < 99) {
    currentIndex++;
}
NSString *path = [[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"file%d",currentIndex] ofType:@"html"];
NSFileHandle *readHandle = [NSFileHandle fileHandleForReadingAtPath:path];
NSString *htmlString = [[NSString alloc] initWithData: 
                        [readHandle readDataToEndOfFile] encoding:NSUTF8StringEncoding];
[self.myWebView loadHTMLString:htmlString baseURL:nil];

我希望它会工作

于 2012-05-11T07:37:18.007 回答
1

下图中,一个用于添加 HTML、Javascript 和 CSS 类文件,第二个用于一般 XCode 文件。

用于 HTML、Javascript 和 CSS 文件

将文件添加到 XCode 中时:

在此处输入图像描述

这对我有用..!希望它对所有人都有效。谢谢!!

于 2013-12-17T07:28:49.780 回答
0

我想,你想在 webview 中做 html 文件,在我的应用程序中,我在那个视图中做了一个滚动视图,在那个视图中,我在循环中添加了 webview,最后我在 webview 中添加了 html 文件。试试这个代码:

ScrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0,0,768,[[UIScreen mainScreen] bounds].size.height)];
    ScrollView.contentSize = CGSizeMake(768*21,[[UIScreen mainScreen] bounds].size.width);
    ScrollView.pagingEnabled=YES;
    ScrollView.delegate = self;
    ScrollView.userInteractionEnabled = YES;
    ScrollView.showsVerticalScrollIndicator=NO;
    ScrollView.showsHorizontalScrollIndicator=NO;

    int x=0,y=125;
    for ( i=1; i<22; i++)
    {

        view3=[[UIView alloc]initWithFrame:CGRectMake(x,0,768, 1000)];
        view3.backgroundColor=[UIColor whiteColor];

        webview2=[[UIWebView alloc]initWithFrame:CGRectMake(0,y,768,755)];
        webview2.scalesPageToFit=YES;
        webview2.autoresizingMask=(UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);
        webview2.multipleTouchEnabled=YES;
        webview2.backgroundColor=[UIColor whiteColor];

        NSString *st = [NSString stringWithFormat:@"1%d",i];
        NSString *str12=[NSString stringWithFormat:@"information_"];
        str12=[str12 stringByAppendingString:st];
        NSString *urlAddress        = [[NSBundle mainBundle] pathForResource:str12 ofType:@"html"];//you can also use PDF files
        NSURL *url                  = [NSURL fileURLWithPath:urlAddress];
        NSURLRequest *requestObj    = [NSURLRequest requestWithURL:url];
        [webview2 loadRequest:requestObj];

        webview2.tag= i + 10;
        [view3 addSubview:webview2];


        [ScrollView addSubview:view3];

        x=x+768;


}
    [self.view addSubview:ScrollView];



}

在我的应用程序中的 22 个 html 页面(信息_%i,必须在资源中)添加到 webview 中,它工作得很好。

我希望它对你也有帮助。

于 2012-05-11T11:21:08.397 回答