小编AT3*_*T3D的帖子

检测WKWebView何时完成加载

我在iPad上的iOS8上运行WKWebView应用程序(标准iPad UserAgent:"Mozilla/5.0(iPad; CPU OS 8_1_1,如Mac OS X)AppleWebKit/600.1.4(KHTML,如Gecko)版本/ 8.0 Mobile/12B436 Safari/600.1 0.4" ).我已经尝试了所有我能想到的代表和监听器,每次都尝试检测页面何时完成加载.这是问题所在:

  1. 打开您的WKWebView并转到Google.以下称为:

    _decidePolicyForNavigationAction
    _didStartProvisionalNavigation
    _ didFinishNavigation
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在Google中输入"YouTube":仅调用_decidePolicyForNavigationAction.没有didStartProvisionalNavigation或didFinishNavigation

  3. 点击Google中的YouTube.以下称为:

    _didStartProvisionalNavigation
    _decidePolicyForNavigationAction
    _ didFinishNavigation
    
    Run Code Online (Sandbox Code Playgroud)
  4. 从现在开始,在YouTube内没有任何内容.点击YouTube视频,没有didStartProvisionalNavigation或didFinishNavigation.此外,不再调用webview.loading观察者.甚至decisionPolicyForNavigationAction也只是偶尔被调用.但是...... 每次点击都会更新webView.backForwardList.currentItem,所以这必须检测页面何时以某种方式加载?

这种行为也发生在许多其他网站上(例如Vimeo).我知道这种类型的网站每次都没有更新主框架,但缺乏检测何时加载已经开始/完成WKWebView当前状态的"限制"的能力?

我想要实现的是:在YouTube/Vimeo等Java移动网站中,是否有其他方法可以检测导航何时完成:

  • 使用NSURLProtocol或类似?
  • 或者可能是一种检测webView.backForwardList.currentItem何时更新的方法?

谢谢你的帮助.

ios swift wkwebview

16
推荐指数
1
解决办法
1万
查看次数

获取使用WKWebView挖掘的所有项目的URL

我在iOS中加载了一个WKWebView页面.如果用户导航到WKWebView中的另一个页面,我可以获得他们点击的URL,如下所示:

var clickedUrl = String()

func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {

    clickedUrl = webView.URL?.absoluteString as String! // GETS URL OF CURRENT PAGE LOADED
}
Run Code Online (Sandbox Code Playgroud)

如果用户访问YouTube,请点击"url = http://www.youtube.com",这很棒.但是......如果用户点击视频 - 没有.另一个视频 - 什么都没有.我没有得到点击视频的网址.在Vimeo和其他各种网站上也是如此.

我已经在这里做了一些研究并发现了其他帖子,看起来这与'WKWebView没有报告在非主框架上加载完成'有关,但没有解释如何获取已加载的URL .我猜这与YouTube等网站使用JavaScript导航到其网站上的其他网页并加载它们有关.

我也试过了webView(_:decidePolicyForNavigationAction:).此功能更详细,但此功能也不会检测在YouTube等网站中点击的链接的网址.我想要做的是获取用户点击的所有内容的URL.我猜我需要深入NSURL或NSURLRequest才能得到这个,但我无法弄清楚如何做到这一点.任何帮助将不胜感激.

道歉 ...请参阅重复/类似问题:检测WKWebView何时完成加载

url ios swift wkwebview

6
推荐指数
1
解决办法
4122
查看次数

标签 统计

ios ×2

swift ×2

wkwebview ×2

url ×1