Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 检测WKWebView是否已关闭_Swift_Ios8_Wkwebview - Fatal编程技术网

Swift 检测WKWebView是否已关闭

Swift 检测WKWebView是否已关闭,swift,ios8,wkwebview,Swift,Ios8,Wkwebview,我正在使用SWIFT构建一个简单的iOS应用程序。它在主视图全屏的WKWebView中加载一个单页应用程序。点击广告将在以MODALY方式呈现的新场景中打开另一个WKWebView。但是,如果我在新场景中单击几个页面并返回主视图,则主视图有50%的几率变为空白 当主视图变为空白时,它将从Safari inspector中消失,webView.reload不起作用。但loadHTMLString是有效的。所以我可以这样做: 1. override func viewWillAppear(anima

我正在使用SWIFT构建一个简单的iOS应用程序。它在主视图全屏的WKWebView中加载一个单页应用程序。点击广告将在以MODALY方式呈现的新场景中打开另一个WKWebView。但是,如果我在新场景中单击几个页面并返回主视图,则主视图有50%的几率变为空白

当主视图变为空白时,它将从Safari inspector中消失,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
    }];

在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
    }];

用户3437673的答案是正确的。这是像我这样的人的SWIFT代码,他们最近才来到iOS开发

       self.webView?.evaluateJavaScript("document.querySelector('body').innerHTML") { (result, error) in
            if error != nil {
                // the main web view has turned blank
                // do something like reload the page
            }
        }

用户3437673的答案是正确的。这是像我这样的人的SWIFT代码,他们最近才来到iOS开发

       self.webView?.evaluateJavaScript("document.querySelector('body').innerHTML") { (result, error) in
            if error != nil {
                // the main web view has turned blank
                // do something like reload the page
            }
        }

也适用于Swift。也适用于Swift。