2013-02-19 2 views
0

Простите меня за то, что вы новичок (что было бы очень новым) для разработки iOS.Определение события на UIWebView

Я только что реализовал собственную авторизацию на Facebook, и теперь я хочу передать свой access_token в локальный html-файл в UIWebView. Для этого я создал объект Javascript в html-файле с функцией init, которая получает параметр access_token как параметр. Теперь мне просто нужно внешне вызвать эту функцию. Некоторые исследования привели меня к [UIWebView stringByEvaluatingJavaScriptFromString:(NSString *)] - но это не следует вызывать до тех пор, пока страница не будет загружена.

В моей ViewController.m я определил - (void)updateView, в котором я делаю запрос на webView который является UIWebView. Теперь я хочу выполнить строку JavaScript, как только будут завершены эти конкретные запросы. Как мне это сделать?

- (void)updateView { 
    AppDelegate *appDelegate = [[UIApplication sharedApplication]delegate]; 
    if (appDelegate.session.isOpen) { 
     NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://mydomainwuhuu/mobile?o=Auth&accessToken=%@", appDelegate.session.accessToken]]; 
     NSURLRequest *request = [NSURLRequest requestWithURL:url]; 
     [webView loadRequest:request]; 
     [webView stringByEvaluatingJavaScriptFromString:@"window.alert('test')"]; 
    } 
} 

Этот код не делает, и я думаю, что это потому, что я называю JavaScript, прежде чем страница загрузилась? Как мне исправить?

ответ

1

UIWebView имеет методы делегатов, см. this. Для вашей ситуации используйте – webViewDidFinishLoad:.

+0

Как? Прямо сейчас у меня есть что-то вроде: '- (void) webViewDidFinishLoad: (UIWebView *) thisWebView {[thisWebView stringByEvaluatingJavaScriptFromString: @" wuff.init() "]; } '}' Но он не выполняет функцию. –

+0

добавьте оповещение внутри этой функции. Можете вставить код функции JS. – kaar3k

+0

. Я включил window.alert («test») внутри функции wuff.init(). Проблема не в JavaScript. Если я открою html-файл в своем веб-браузере и запустил wuff.init(), появится всплывающее окно. –

0

У меня была такая же проблема и раньше. Я только закончил, включая кнопку «Готово» и включил функцию strbyevaluatingjavascript внутри вызова кнопки IBAction.

Он работал тогда.

+0

Мне это не интересно , Это должно произойти автоматически при загрузке. –

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