请原谅我对iOS开发而言是新的(这将是非常新的)。
我刚刚实施了本机Facebook授权,现在我想将我的access_token传递给UIWebView中的本地html文件。为此,我在html文件中创建了一个Javascript对象,其中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?我该如何解决?
答案 0 :(得分:1)
UIWebView有委托方法,请参阅this。根据您的情况,请使用– webViewDidFinishLoad:
。
答案 1 :(得分:0)
之前我遇到过同样的问题。我最终只包括一个“完成”按钮,并在IBAction按钮调用中包含stringbyevaluatingjavascript函数。
当时有效。