在UIWebView上定义事件

时间:2013-02-19 19:06:26

标签: javascript ios xcode uiwebview

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

2 个答案:

答案 0 :(得分:1)

UIWebView有委托方法,请参阅this。根据您的情况,请使用– webViewDidFinishLoad:

答案 1 :(得分:0)

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

当时有效。