2015-11-15 3 views
0

Я создал приложение, которое отлично работает. Единственное, что мне нужно - это передать оповещения из uiwebview в мое приложение iOS.передать предупреждение от UIWebView к iOS app

у меня есть это предупреждение в моем UIWebView

<div id="alerts" class="alerts"> 

<p class="alert-red">ok. come back again tomorrow, not now.</p> 

я хочу это предупреждение передать в мое приложение и сделать его в UIAlertView

UIAlertView *errr = [[UIAlertView alloc]initWithTitle:@"nil" message:@"ok. come back again tomorrow, not now." delegate:self cancelButtonTitle:@"Ok, Got it" otherButtonTitles:nil, nil]; 
    [errr show]; 

идеи, как этого добиться результат? мне нужно, чтобы NSNotification слушал, когда это предупреждение появляется на uiwebview?

Я пытался что-то вроде этого

NSString *theTitle=[webView stringByEvaluatingJavaScriptFromString:@"var targetDiv = document.getElementById('alerts').getElementsByClassName('alert-red')[0];"]; 

NSLog(@"%@",theTitle); 

Так что я могу попытаться получить это сообщение от «встревоженной-красный», но не работает.

Я новичок в Javascript и HTML

ответ

0

This is the typical workaround используется для решения этой проблемы:

в вашем веб-страницы, если вы хотите, чтобы показать это предупреждение, запустить этот яваскрипта код:

window.location = 'custom_action';

затем в объективе shouldStartLoadWithRequest на вашем контроллере (и наборе yourWebView.delegate = yourController)

-(BOOL)webView:(UIWebView *)webView 
     shouldStartLoadWithRequest:(NSURLRequest *)request 
     navigationType:(UIWebViewNavigationType)navigationType { 
    // detect when the webview switches to this custom url 
    if([[[request URL] absoluteString] isEqualToString: @"custom_action"]) { 
    UIAlertView *errr = [[UIAlertView alloc]initWithTitle:@"nil" message:@"ok. come back again tomorrow, not now." delegate:self cancelButtonTitle:@"Ok, Got it" otherButtonTitles:nil, nil]; 
    [errr show]; 
    // this prevents the webview from actually trying to load the custom url 
    return NO; 
    } 
    // allow the url to load if its not your custom url 
    return YES; 
} 
Смежные вопросы