2012-05-03 23 views
7

Todo el mundo,Cómo ejecutar el archivo HTML + javascript ejecutado en UIWebView. .?

Tengo una página HTML que contiene una función de Javascript que muestra una animación de animales .. la he agregado localmente en el proyecto xcode.

Ahora, cuando me carga este archivo en UIWebView que se ve perfecto .. Este es el código del archivo HTML de carga a 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]; 
} 

Pero tengo 6 páginas. Cuando comience a cargar cada página con UIWebView por separado, se va a la advertencia de memoria .. Y dame el error como aquí.

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

si corro sólo una página de funcionar perfectamente, pero cuando comienzo a cargar todos juntos o uno a uno se estrelló con la advertencia de memoria.

Avisadme si cualquiera conseguir cualquier solución de la misma ..

he pegado con este problema ..

Gracias,

+0

he buscado en muchos foros y lo he buscado en Google, pero no tengo suerte ... por favor, ayúdenme ... –

+0

Creo que cargar 6 páginas por cada 6 UIWebView no es necesario, ¿hay alguna forma alternativa de hacerlo? – Tom

+0

también lo intentó .... Pero no es un éxito ... –

Respuesta

2

fin llegué solución .. Después de larga R & D, tiene alguna solución efectiva ...

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

esta es la razón por la que no se pueden cargar en la página HTML UIWebView .. Y IPAD manejar hasta a 3 MB de carga de datos en App lanzamiento solamente .. y he utilizado más de lo que ..

por lo tanto, yo cambio javascript según el requisito y ahora funcionado ..

Gracias por parte sea de la misma ..

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

espero que funcionará

+1

¿Has leído mi pregunta ...? Amigo, que sé cómo reproducir archivos múltiples en UIWebView,: P –

+0

Respondo la pregunta. Pensé que tu problema era cargar el archivo de 6 html, así que había dado ese ejemplo. Lo siento por la falta de comunicación – Subramanian

0

creo que quieres hacer un archivo html en webview, en mi aplicación hice una vista de desplazamiento en esa vista, en esa vista agregué webview en loop al fin agregué el archivo html en webview. probar este código:

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



} 

en mi solicitud de 22 páginas html (information_% I, tienen en recursos) añadir en la vista web, que está funcionando muy bien.

Espero que sea útil para usted también.

+0

¿Cuál es la razón detrás de usar UIScrollView aquí? –

+0

deslice una página html diferente en la vista mai, así que agregue scrollview en la vista principal. – Dev

1

En la figura siguiente, una es para agregar archivos HTML, Javascript y CSS, y la segunda es para archivos XCode generales.

para HTML, JavaScript y CSS archivos

bien la adición de archivos en XCode:

enter image description here

Esto funciona para mí ..! Espero que funcione para todos. ¡¡Gracias!!

Cuestiones relacionadas