我正在使用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/