Предупреждение JavaScript () не работает во встроенном WebView - PullRequest
13 голосов
/ 20 января 2010

При встраивании WebView в приложение и загрузке в него html-страниц, JavaScripts alert() / confirm() / и т. Д. не работают.

Посмотрев в документацию, в WebPreferences нет связанных настроек - единственное, что выглядит как WebUIDelegate s -(void)webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame: и т.д. их реализация будет означать написание пользовательских диалогов для них, которые кажутся излишними ...
Мне не нужен пользовательский WebUIDelegate, и я хотел бы продолжить, просто используя стандартный.

Конечно, должен быть какой-то способ просто включить alert() и др., Но как?

Ответы [ 2 ]

12 голосов
/ 01 сентября 2011

Вот пример кода, который будет выполнять основную работу.Однако вам нужно убедиться, что этот объект зарегистрирован как UIDelegate для WebView.

- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message initiatedByFrame:(WebFrame *)frame {
    NSAlert *alert = [[NSAlert alloc] init];
    [alert addButtonWithTitle:@"OK"];
    [alert setMessageText:message];
    [alert runModal];
    [alert release];
}
5 голосов
/ 21 января 2010

Оказывается, что по умолчанию просто не установлено WebUIDelegate - Apple, похоже, ожидает, что все будут реализовывать одни и те же базовые функции для себя.

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