Простите меня за то, что вы новичок (что было бы очень новым) для разработки 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, прежде чем страница загрузилась? Как мне исправить?
Как? Прямо сейчас у меня есть что-то вроде: '- (void) webViewDidFinishLoad: (UIWebView *) thisWebView {[thisWebView stringByEvaluatingJavaScriptFromString: @" wuff.init() "]; } '}' Но он не выполняет функцию. –
добавьте оповещение внутри этой функции. Можете вставить код функции JS. – kaar3k
. Я включил window.alert («test») внутри функции wuff.init(). Проблема не в JavaScript. Если я открою html-файл в своем веб-браузере и запустил wuff.init(), появится всплывающее окно. –