请原谅我对 iOS 开发相当陌生(那将是非常新的)。
我刚刚实现了原生 Facebook 授权,现在我想将 access_token 传递到 UIWebView 中的本地 html 文件。为此,我在 html 文件中创建了一个 Javascript 对象,其中包含一个接收 access_token 作为参数的 init 函数。现在我只需要从外部调用该函数即可。一些研究让我想到了 [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?我该如何解决?
最佳答案
UIWebView 有委托(delegate)方法,请参阅 this .根据您的情况,请使用 – webViewDidFinishLoad:
。
关于javascript - 在 UIWebView 上定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14965408/