2012-03-21 3 views
0

나는 정말로 webview에서 HTML과 Javascript 코드를로드해야하는 조건에 처해있다. html 파일을 사용하여로드하는 경우 완벽하게 작동하지만 string.I로로드하려고 할 때 HTML로 동적으로 URL을 변경하려고하므로 문자열로로드해야합니다. 문제가있는 것 같습니다. HTML 문자열, 누군가 나를 도와 줄 수 있습니다.자바 스크립트를 webview에로드 중

NSString *embedHTML = [NSString stringWithFormat:@"<HTML><HEAD><BODY>" 
          "<div id=\"fb-root\">sfd</div><script>(function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = \"http://connect.facebook.net/en_US/all.js#xfbml=1&appId=251520118193948\"; fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));</script>""<fb:comments-count href=http://abcd.com></fb:comments-count>" 
          "<BR></BODY></HTML>"]; 


    [webView loadHTMLString:embedHTML baseURL:nil]; 
+0

U 문자열로 교체하십시오 귀하의 스크립트 블록 –

+0

나는 당신을 얻지 못했고, 나는 우리가 자바 스크립트 코드에 $를 써야한다고 생각하지 않습니다. ?? –

+0

그 때 괄호는 무엇입니까? jquery로 document.ready에 그 함수를 바인딩하려고 한 것 같았습니다. –

답변

0

아주 쉽게 : 이 유 HEADALEX, HTML 내부 BODYALEX에 index.html을 boundle에 밀어, 그리고 당신의 맨 처음에 $ 누락 된 것 같습니다

NSURL *indexURL = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"]; 
NSError *error = nil; 

NSString *index = [NSString stringWithContentsOfURL:indexURL encoding:NSUTF8StringEncoding error:&error]; 

index = [index stringByReplacingOccurrencesOfString:@"HEADALEX" withString:htmlCodeHead]; 
index = [index stringByReplacingOccurrencesOfString:@"BODYALEX" withString:htmlCode]; 
[index writeToURL:indexURL atomically:YES encoding:NSUTF8StringEncoding error:&error]; 
if (error) NSLog(@"PHONE CONFIG: write to file html error:%@",error); 

[adsView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"] isDirectory:NO]]]; 
+0

고맙습니다 user170317 고마워요.하지만 문자열을 사용하여 문자열을 교체해야합니다. 왜냐하면 대체 할 문자열이 무엇인지 알지 못하기 때문입니다. 대신 하드 코딩 된 URL 대신 해당 변수를 넣어야합니다. –

+0

htmlCodeHead 및 htmlCode가 가변적입니다. – user170317

관련 문제