Подтвердить что ты не робот

Предупреждение JavaScript() не работает во встроенном WebView

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

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

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

4b9b3361

Ответ 1

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

Ответ 2

Вот пример кода, который будет выполнять основную работу. Однако вам нужно убедиться, что этот объект зарегистрирован как 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];
}