2013-07-19 5 views
0

Я пытался получить сообщение «javascript alert» в UIWebView. , хотя его можно получить в Android WebView, используя событие onJsAlert, UIWebView не имеет своего рода метод ... , если кто-нибудь знает способ сделать это, пожалуйста, дайте мне знать.Как я могу получить содержимое сообщения javascript на UIWebView?

+0

Пожалуйста, постарайтесь предоставить более подробную информацию - что вы пробовали и откуда знаете, что оно не работает? – icedwater

ответ

3

Вы не можете сделать это простым способом (ASAIK). Давайте взломать его! Попробуйте заново определить свою функцию оповещения, не забудьте передать ваши предупредительное сообщение о JS оповещения в

I AM A SPECIAL URL для обнаружения

- (void) webViewDidFinishLoad: (UIWebView *) webView 
{ 
    [webView stringByEvaluatingJavaScriptFromString:@"window.alert = function(message) { window.location = \"I AM A SPECIAL URL FOR detecting\"; }"]; 
} 

И получите то, что вы хотите в alert: url:

- (BOOL) webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType 
{ 
    NSURL* url = request.URL; 

    // look for our custom action to come through: 
    if ([url.host isEqualToString: @"I AM A SPECIAL URL FOR detecting"]) 
    { 
     // parsing the url and get the message, assume there is a '='for value, if you are passing multiple value, you might need to do more 
     NSString* message = [[[[url query] componentsSeparatedByString: @"="] lastObject] stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 

     // show our alert 
     UIAlertView* alertView = [[UIAlertView alloc] initWithTitle: @"My Custom Title" 
                message: message 
                delegate: nil 
              cancelButtonTitle: @"OK" 
              otherButtonTitles: nil]; 

     [alertView show]; 

     return NO; 
    } 
    return YES; 
} 
+0

Я думаю, ваше решение интересно! – kvh

+0

Я забыл, где я его нашел. Он существует в моем Dropbox в течение длительного времени XD – Horst

+0

Я думаю, лучшее решение здесь. Взгляните на эту категорию https://github.com/wangruofeng/IOS-Categories/blob/master/IOS-Categories/UIKit/UIWebView/UIWebView%2BAlert.m –

Смежные вопросы