Как программно изменить JavaScript в UIWebView? - PullRequest
1 голос
/ 16 августа 2010

Мне нужно динамически изменить Javascript внутри моего UIWebView. Я загружаю файл html локально, внутри папки Documents моего приложения.

Мне нужно создать атрибуты var следующим образом:

var attributes = {
    "feedURL": "http://www.obliviux.com/?feed=rss2", //insert NSString *RSS here
    "maxAgeToShow": "-1",  //insert NSString *maxAge here
    "numItemsToShow": "10",  //insert NSString *numItems here
    "topStories": "3"  //insert NSString *topStories here
};

И измените их значение с помощью некоторой строки NSString, которую я сохранил.

Как я могу это сделать?

1 Ответ

1 голос
/ 16 августа 2010

Прежде всего, вы можете загрузить свои html-данные из простого NSData-объекта. Имея это в виду, вы можете загрузить NSString из вашего файла, заменив '__feed_url__' (например) вашей NSString.

UIWebView *webView = [[UIWebView alloc] initWithFrame:yourRect];
NSString *template = [[NSString alloc] initWithContentsOfFile:yourTemplateFile];
template = [template stringByReplacingOccuresOfString:@"__feed_url__" withString:yourFeedURL];
[webView loadData:[template dataUsingEncoding:NSUTF8StringEncoding] MIMEType:@"text/html" textEncodingName:@"utf8"];

Кроме того, вы могли бы рассмотреть это:

- (void)viewDidLoad {
    ...
    self.webView.delegate = self;
    ...
}

- (void)webViewDidFinishLoad:(UIWebView *)someWebView {
    NSString *result = [self.webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"attributes['feedURL'] = '%@'", yourFeedURL]];
}

Как видите, этот путь намного сложнее.

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