Как получить действие alert () из javascript в приложение Какао через WebView - PullRequest
0 голосов
/ 03 июля 2011

Я разработал какое-то приложение Какао с WebView.Теперь я могу оценить javascript в HTML-файл, используя evaluateWebScript:

Но мне нужно получить событие alert() из javascript для отображения в NSAlertSheet Какао.

Как делать с развитием какао?

Ответы [ 2 ]

8 голосов
/ 04 июля 2011

Вам необходимо установить объект как WebUIDelegate для WebView (используя метод setUIDelegate:) и в этом объекте реализовать метод делегата ‑webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:.Этот метод вызывается, когда страница, загруженная в WebView, вызывает функцию JavaScript alert().

В вашей реализации метода делегата вы должны отобразить предупреждение.Предупреждение должно:

  1. отображать точную строку сообщения, переданную методу
  2. , означать, что сообщение приходит из JavaScript
  3. содержит только одну кнопку, OK кнопка

Вот базовый пример:

- (void)webView:(WebView *)sender runJavaScriptAlertPanelWithMessage:(NSString *)message
{
    NSAlert* jsAlert = [NSAlert alertWithMessageText:@"JavaScript"
                                       defaultButton:@"OK" 
                                     alternateButton:nil 
                                         otherButton:nil 
                           informativeTextWithFormat:@"%@", message];
    [jsAlert beginSheetModalForWindow:sender.window modalDelegate:nil didEndSelector:NULL contextInfo:NULL];
}
0 голосов
/ 04 июля 2011

Вы можете попробовать переопределить JavaScript alert функцию на window. В вашем пользовательском alert вы можете перенаправить на предварительно определенный URL, например, app://alert/something%32is%32wrong. Перенаправление такого типа может быть обработано с UIWebView по webView:shouldLoadRequest:.

PS: я не пробовал:)

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