我正在使用swift构建一个简单的ios应用程序。它在wkwebview的主视图全屏中加载一个单页应用程序。单击“广告”将在模式显示的新场景中打开另一个wkwebview。但是,如果我在新场景中单击多个页面并返回主视图,则主视图有50%的机会变为空白。
当主视图变为空白时,它将从Safari检查器中消失,并且webview.reload()不起作用。但是loadhtmlstring是有效的。所以我可以这样做:

1. override func viewWillAppear(animated: Bool) {
2.     super.viewWillAppear(false)
3.     if pageStatus == .BackFromAdScene {
4.         if webView is Blank {
5.              loadFromLocal()
6.         }
7.     }
8. }

我很好奇什么是检测wkwebview是否为空的最简单的方法?换句话说,我应该怎么写第4行?

最佳答案

在objective-c中,我用了这个技巧:

    [self.webView evaluateJavaScript:@"document.querySelector('body').innerHTML" completionHandler:^(id result, NSError *error) {
       if (!result || ([result isKindOfClass:[NSString class]] && [((NSString *)result) length] == 0)) {
       // reload your page
    }];

关于swift - 检测WKWebView是否已消隐,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27809259/

10-14 20:59