написать в HTML-файл и отобразить на iphone - PullRequest
0 голосов
/ 22 января 2011

У меня есть локальный html-файл, который я могу отобразить в UIWebview, теперь есть способ, подобный , я могу передать свое строковое значение на эту html-страницу и отобразить содержимое ???

вот как я загружаю 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 s = @ "hello"

теперь я могу добавить это значение в тег html и показать в UIwebview ??

Ответы [ 2 ]

2 голосов
/ 22 января 2011

Вы не можете хранить изменяемые (изменяющиеся) объекты в вашем комплекте приложений. Тем не менее, вы можете поместить их туда перед сборкой приложения, открыть их во время выполнения приложения, записать их на диск и изменить их, когда захотите, после этого.

Ваш код

NSString * s; s = @ "привет";

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

Когда вы запускаете только в первый раз Захватите ресурс и сохраните его в строку

NSString *myHTML = [NSString stringWithContentsOfURL:instructionsURLd encoding:NSASCIIEncoding error:&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];

Затем загрузите его, когда вам это нужно

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 в документ HTML

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

Записать все обратно в файл

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 голосов
/ 08 мая 2013

Вы можете просто сделать это, создав метод javascript в HTML, а затем вызвать его через IOS, если вы хотите передать эту строку в html из IOS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...