2012-05-03 27 views
7

Mọi người,Cách chạy tệp HTML + javascript chạy trên UIWebView. .?

Tôi có một trang HTML có chứa một chức năng Javascript hiển thị một hoạt ảnh động vật .. tôi đã thêm nó cục bộ vào dự án xcode.

Bây giờ khi tôi tải tập tin này trong UIWebView nó sẽ trông hoàn hảo .. Đây là mã của file html tải để 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]; 
} 

Nhưng tôi có 6 trang. Khi bắt đầu tải mỗi trang với UIWebView riêng biệt, nó đi vào cảnh báo bộ nhớ .. Và cho tôi lỗi như ở đây.

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

nếu tôi chỉ chạy một trang chạy nó một cách hoàn hảo, nhưng khi tôi bắt đầu tải tất cả cùng nhau hoặc từng cái một bị lỗi cảnh báo bộ nhớ.

Hãy cho tôi biết nếu có một nhận được bất kỳ giải pháp của nó ..

tôi đã bị mắc kẹt với vấn đề này ..

Cảm ơn,

+0

tôi đã tìm kiếm trên nhiều diễn đàn và googling nó, nhưng không nhận được bất kỳ may mắn ... xin vui lòng giúp tôi .. –

+0

Tôi nghĩ rằng tải 6 trang cho mỗi 6 UIWebView là không cần thiết, là có cách nào khác để làm cho nó? – Tom

+0

cũng đã cố gắng .... Nhưng không thành công ... –

Trả lời

2

cuối cùng tôi đã nhận giải pháp .. Sau khi dài R & D, có một số giải pháp hiệu quả ...

"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" 

đây là lý do tại sao tôi không tải trang html trong UIWebView .. Và iPad xử lý lên 3 MB tải dữ liệu trên App ra mắt chỉ .. và tôi đã sử dụng hơn nó ..

vì vậy, tôi thay đổi javascript theo yêu cầu và bây giờ làm việc ..

Cám ơn phần nào của nó ..

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]; 

Tôi hy vọng nó sẽ làm việc

+1

Bạn đã đọc câu hỏi của tôi chưa ..? Dude, tôi biết cách chơi nhiều tệp trong UIWebView,: P –

+0

Tôi đỏ câu hỏi. Tôi nghĩ rằng vấn đề của bạn là tải tập tin html 6 để tôi đã cho rằng example.sorry cho miss coummunication – Subramanian

0

tôi nghĩ rằng, bạn muốn làm file html trong webview, trong ứng dụng của tôi tôi thực hiện một scrollview trong đó xem, trong đó xem i thêm webview trong vòng lặp cuối cùng tôi thêm các tập tin html trong webview. thử mã này:

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]; 



} 

trong trang html đơn 22 của tôi (information_% i, phải ở tài nguyên) thêm trong webview, nó đang làm việc rất tốt.

tôi hy vọng điều đó cũng hữu ích cho bạn.

+0

Lý do đằng sau việc sử dụng UIScrollView ở đây là gì? –

+0

trượt trang html khác nhau trong chế độ xem mai vì vậy tôi thêm scrollview trong chế độ xem chính. – Dev

1

Trong hình bên dưới, một là để thêm HTML, Javascript và CSS như các tệp và tệp thứ hai là dành cho các tệp XCode chung.

cho HTML, Javascript và CSS file

Trong khi thêm file vào XCode:

enter image description here

này làm việc cho tôi ..! Hy vọng nó sẽ làm việc cho tất cả. Cảm ơn bạn!!

Các vấn đề liên quan