Вставить локальный JavaScript в UIWebView - PullRequest
11 голосов
/ 06 сентября 2011

Есть ли способ внедрить локальный файл JS или файл JS, который хранится на моем сервере, в любую веб-страницу, загруженную UIWebView?

Скажем, я перехожу на google.com в этом UIWebView, он отображает эту страницу, а также запускает мой файл JS (локальный или на моем веб-сервере)?

Ответы [ 2 ]

18 голосов
/ 06 сентября 2011

Следующий код вставит JavaScript локально

- (void)injectJavascript:(NSString *)resource {
    NSString *jsPath = [[NSBundle mainBundle] pathForResource:resource ofType:@"js"];
    NSString *js = [NSString stringWithContentsOfFile:jsPath encoding:NSUTF8StringEncoding error:NULL];

    [self.webView stringByEvaluatingJavaScriptFromString:js];
}

Просто передайте имя файла перед js, например.

[self injectJavascript:@"script"];

Чтобы ввести JavaScript с вашего сервера, вы можете сначала загрузить его и аналогичным образом загрузить в веб-представление.

1 голос
/ 01 июля 2014

Хотелось бы завершить ответ Шермана .Xcode определяет * .js - файлы как исходный код и добавляет его в «Compile Sources» в настройках проекта, поэтому objc возвращает nil, когда вы пытаетесь получить pathForResource в mainBundle.Чтобы решить эту проблему, вы должны добавить свой файл JavaScript в «Фазы сборки»> «Копировать ресурсы комплекта» в настройках проекта.Надеюсь, что это будет полезно, столкнулся с этой проблемой сегодня.

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