0

请原谅我对 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?我该如何解决?

4

2 回答 2

1

UIWebView 有委托方法,请参阅。对于您的情况,请使用– webViewDidFinishLoad:.

于 2013-02-19T19:14:05.237 回答
0

我以前也遇到过同样的问题。我最终只包含了一个“完成”按钮,并在 IBAction 按钮调用中包含了 stringbyevalatingjavascript 函数。

那时它奏效了。

于 2013-02-19T19:37:10.343 回答