2012-05-03 7 views
7

Tutti,Come eseguire HTML + file javascript eseguito su UIWebView. .?

Ho una pagina HTML che contiene una funzione Javascript che mostra un'animazione di animali .. l'ho aggiunta localmente al progetto xcode.

Ora quando carico il file in UIWebView lo farà sembra perfetto .. Ecco il codice del file HTML di caricamento per 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]; 
} 

ma ho 6 pagine. Quando si inizia a caricare ogni pagina con UIWebView separato, si passa all'allarme di memoria .. E dammi errori come qui.

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

Se corro solo una pagina di funzionare perfettamente, ma quando comincio a caricare tutti insieme o uno per uno si è schiantato con avviso di memoria.

Fatemi sapere se qualcuno ottiene una soluzione di esso ..

ho bloccato con questo problema ..

Grazie,

+0

ho cercato su molti forum e su Google, ma non avere fortuna ... per favore aiutatemi .. –

+0

Penso che caricare 6 pagine ciascuna per 6 UIWebView non è necessario, c'è un modo alternativo per farlo? – Tom

+0

anche provato .... Ma non successo ... –

risposta

2

finalmente ho avuto soluzione .. Dopo lunga R & D, ha ottenuto una soluzione efficace ...

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

questo è il motivo per cui non riesco a caricare la pagina HTML in UIWebView .. E iPad gestire fino al caricamento dei dati 3 MB su lancio App solo .. e ho usato più di esso ..

Quindi, io cambio javascript secondo il requisito ed ora ha lavorato ..

Grazie per una parte di esso .. be

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

spero che funzionerà

+1

Hai letto la mia domanda ..? Amico, che so come riprodurre più file in UIWebView,: P –

+0

I red la domanda. Ho pensato che il tuo problema stava caricando il file 6 html in modo da aver dato quell'esempio. Per la miss coomunication, ho dovuto dare un errore. – Subramanian

0

Penso che tu voglia fare il file html in webview, nella mia applicazione ho fatto una scrollview in quella vista, in quella vista aggiungo webview in loop finalmente aggiungo il file html in webview. provare questo codice:

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



} 

nella mia richiesta di 22 pagine html (information_% i, devo in risorse) aggiungere in WebView, si sta lavorando molto bene.

spero sia utile anche a voi.

+0

Qual è la ragione dietro l'utilizzo di UIScrollView qui? –

+0

slide diversa pagina html in mai vista così aggiungo scrollview in mainview. – Dev

1

Nella figura seguente, uno è per aggiungere file HTML, Javascript e CSS come i file e il secondo è per file XCode generici.

per HTML, JavaScript e CSS file

Mentre l'aggiunta di file in XCode:

enter image description here

Questo funziona per me ..! Spero che funzionerà per tutti. Grazie!!

Problemi correlati