2012-05-03 33 views
7

皆さん、UIWebViewで実行されるHTML + javascriptファイルの実行方法。 ?

私は1つの動物のアニメーションを表示する1つのJavaScript関数を含む1つのHTMLページを持っています。私はそれをxcodeプロジェクトにローカルに追加しました。今

私はのUIWebViewでこのファイルを読み込むことはしますが、完璧に見える..ここ はのUIWebView

にロードするHTMLファイルのコード
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 

私はそれが完璧に実行よりも、1ページのみを実行する場合、私はすべて一緒に、またはそれがメモリの警告でクラッシュした一つ一つのロードを開始したとき。

いずれかがそれの任意の解を得るなら、私を知ってみましょう。..

私はこの問題で立ち往生している。..

おかげで、

+0

私は多くのフォーラムを検索して、検索していますが、幸運を祈ることはありません...助けてください.. –

+0

私は6つのUIWebViewのためにそれぞれ6ページをロードする必要はないと思う、それを作るための代替手段はありますか? – Tom

+0

も試してみました....しかし成功していません... –

答えて

2

は最終的に私はこれは私がのUIWebViewでHTMLページをロードするために失敗した理由... で、iPadがアップハンドル...

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

を、長いR & D後..ソリューションを持って、いくつかの効果的なソリューションを得ました...のみアプリケーション起動時に3メガバイトのデータの読み込みに、私はそれ以上のものを使用していた。..

だから、私は、要件ごとにJavaScriptを変更し、今で働いていた...それであることが一部のため

おかげ..

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

私はそれが仕事を願っています

+1

あなたは私の質問を読んでいます..? 私はUIWebViewで複数のファイルを再生する方法を知っています。: –

+0

質問が赤くなります。私はあなたの問題が6 htmlファイルをロードしていると思ったので、私はそのexample.sorryに失敗したcoummunicationを与えました – Subramanian

0

私は思う、あなたは私のアプリケーションでは、そのビューでは、私は最後に私はwebviewのHTMLファイルを追加するループでwebviewを追加する1つのscrollviewを行ったwebviewでhtmlファイルをしたいと思います。私のアプリケーション22 HTMLページ(information_%私は、リソースでなければなりません)、それは非常にうまく機能している、WebViewの中に追加で

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



} 

: このコードを試してみてください。

私はそれがまた役に立つと願っています。

+0

ここでUIScrollViewを使用する理由は何ですか? –

+0

maiビューで別のhtmlページをスライドするので、mainviewでscrollviewを追加します。 – Dev

1

下の図では、HTML、Javascript、CSSなどのファイルを追加するためのものと、一般的なXCodeファイル用のものです。 HTMLやJavaScript、CSSファイル用

はXCodeにファイルを追加する際:

enter image description here

をこれが私の作品...!それがすべての人に役立つことを願っています。ありがとうございました!!

関連する問題