2011-01-22 6 views
0

UIWebview에 표시 할 수있는 로컬 html 파일이 있습니다. 과 같은 방법이 있습니다. html 페이지에 문자열 값을 전달하고 내용을 표시 할 수 있습니까 ??? ???html 파일에 쓰고 iphone에 표시

이 내가 HTML을

NSString *urlAddress = [[NSBundle mainBundle] pathForResource:@"index4" ofType:@"html"]; 



    NSURL *instructionsURLd = [[NSURL alloc] initFileURLWithPath:urlAddress]; 


    [webView loadRequest:[NSURLRequest requestWithURL:instructionsURLd]]; 

지금 index4.html 내용입니다로드

<html> 
<body> 
testing hhhhhhhhhhhhhhhhhhhhhhhhhhhhh 
<a href="index200.html">index1</a> 
<TD><INPUT TYPE=BUTTON OnClick="Circle_calc(this.form);" VALUE="calculate"></TD> 

</body> 
</html> 

//

지금 내가있는 NSString의 =이 있다고 @ "안녕하세요"할 수 있어요 어떻게

이제이 값을 < body> 태그의 html에 추가하고 UIwebview에 표시 하시겠습니까 ??

답변

2

변경 가능한 (변경되는) 개체를 응용 프로그램 번들에 저장할 수 없습니다. 그러나 앱을 만들기 전에 앱을 넣고 앱이 실행될 때 열어 디스크에 기록한 다음 필요할 때마다 수정할 수 있습니다.

귀하의 코드

있는 NSString * s의; s = @ "hello";

NSString *urlAddress = [[NSBundle mainBundle] pathForResource:@"index4" ofType:@"html"]; 
NSURL *instructionsURLd = [[NSURL alloc] initFileURLWithPath:urlAddress]; 
NSError *error; 

때 처음에만 잡아 자원에 대한 당신의 시작 및 디스크

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSData *myData = [NSData dataWithBytes:[myHTML UTF8String] length:[myHTML lengthOfBytesUsingEncoding:NSUTF8StringEncoding]]; 
NSString *appFile = [documentsDirectory stringByAppendingPathComponent:@"index4.html"]; 
[myData writeToFile:appFile atomically:YES]; 

에 데이터를 기록하는 문자열 즉시

NSString *myHTML = [NSString stringWithContentsOfURL:instructionsURLd encoding:NSASCIIEncoding error:&error]; 

로 저장 그런 다음, n

myNewHTML = [myHTML stringByReplacingOccurrencesOfString:@"<body>" withString:[NSString stringWithFormat:@"<body> %@",s]]; 

가 파일에 모든 것을 다시 쓰기 HTML 문서로

NSArray *paths2 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory2 = [paths2 objectAtIndex:0]; 
NSString *appFile2 = [documentsDirectory2 stringByAppendingPathComponent:@"index4.html"]; 
NSData *mySavedData = [[[NSData alloc] initWithContentsOfFile:appFile2] autorelease]; 
NSString *myNewHTML = [[NSString alloc] initWithData:mySavedData encoding:NSUTF8StringEncoding]; 

삽입 s을 EED

NSArray *paths3 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory3 = [paths objectAtIndex:0]; 
NSMutableData *myData3 = [NSData dataWithBytes:[myNewHTML UTF8String] length:[myNewHTML lengthOfBytesUsingEncoding:NSUTF8StringEncoding]]; 
NSString *appFile3 = [documentsDirectory3 stringByAppendingPathComponent:@"index4.html"]; 
NSData *myNewData = [NSData dataWithBytes:[myNewHTML UTF8String] length:[myNewHTML lengthOfBytesUsingEncoding:NSUTF8StringEncoding]]; 
[myNewData writeToFile:appFile3 atomically:YES]; 
+0

번들로 HTML 파일을 다시 작성하는 방법 ?? – prajakta

+0

번들에 다시 쓸 수 없습니다. 그러나 파일을 장치 디스크 드라이브에 저장하고 읽고 쓸 수 있습니다. 나는 그것을 반영하기 위해 해결책을 바꾸었다. 처음 ** 응용 프로그램을 시작할 때 ** 번들 파일을 디스크에 쓰고 디스크 파일에로드/쓰기 만해야합니다. – aqua

0

당신은 자바 스크립트 방법을 만들어 이렇게 간단하게 할 수 있습니다 HTML을 전달한 다음 IOS를 통해 호출합니다. IOS에서 HTML로 tring

관련 문제