javascript - 在 UIWebView 上定义事件

标签 javascript ios xcode uiwebview

请原谅我对 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/

相关文章:

php - JavaScript 和 PHP : Problems with PushState

javascript - jquery $.(one,two).html();中有两个内容

javascript - jQuery SPA 动态创建元素,多次触发事件

ios - 关于如何修复错误 "Could not find any information for class named viewcontroller"的建议

ios - 嵌入式表格 View 现在显示减少的 subview

javascript - JQuery 运行直到新页面加载

ios - iOS无需用户交互即可拍摄多张照片

iOS - 为圆圈设置虚线

ios - UITextField 的自动填充已损坏

Swift:如何像 iOS 13 的 Book 应用程序一样为 PDF 实现标记(注释)?