2

我想确定,页面加载何时完成UIWebView。我知道此处概述的didStartLoad/之间的“引用计数”方法,它有点适合我,但我对此并不十分自信。当Javascript决定与. 我不清楚以下内容:didFinishLoad ifsdocument.location

  1. UIWebViewDelegate对于它应该处理的所有功能,非常简洁并且几乎没有文档。谁能确认didStartLoad/didFinishLoad真的只被称为“框架”,这很可能意味着“框架集/框架”和“iframe”?
  2. 我如何区分上述 DOM 引起的负载和请求重定向(也产生事件)?
  3. 我的观察是每个didStartLoad都以shouldStartLoadWithRequest, 重定向除外。这是一个可靠的行为吗?
  4. 我是否遗漏了什么,或者没有办法知道是什么请求发起了特定的请求didStartLoad?由于[[webView request] URL]给出的唯一上下文,总是返回相同的 URL,即 UIWebView 最初被要求加载的 URL。
4

2 回答 2

0
  1. 我不能。
  2. 我不知道。
  3. 我不知道。
  4. 我说不出来。

有用的答案,对吧?

显然,我认为UIWebViewDelegate可以(应该?)对UIWebView.

我观察活动的尝试UIWebView是:

  • 在加载 iOS 6 时添加观察者:从未调用过观察者。
  • 尝试:

委托方法示例:

- (void)webViewDidStartLoad:(UIWebView *)webView {
    [self.activityIndicator startAnimating];
}

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    if (!webView.loading) {
        [self.activityIndicator stopAnimating];
    }
}

效果很好。

我认为您应该使用您提到的 JavaScript 和 iframe 技巧尝试此代码。它没有帮助,但您拥有您正在谈论的 JavaScript,您还可以考虑向您的应用程序发送信号以指示进一步的加载操作正在进行中(例如使用自定义方案调用 URLmyApp://didStartLoadingSomethingWithJavascriptDudemyApp://didFinishLoadingSomethingWithJavascriptDude

于 2013-03-19T21:08:06.620 回答
0

通过UIWebViewNavigationTypefromshouldStartLoadWithRequest至少您可以确定当前加载是来自用户点击还是页面内发生的任何其他事情。知道页面何时确实加载是无济于事的,但是您可以在用户触发新代码之前启动一些代码。这可能会有所帮助,具体取决于您必须在两页之间执行的任务的性质。

于 2013-10-21T20:31:21.183 回答