美文网首页iOS 的那些事儿
IOS webView断网白屏页判断

IOS webView断网白屏页判断

作者: 飞殇醉月 | 来源:发表于2018-11-05 17:11 被阅读0次

    IOS webView断网空白页判断

    最近项目中出现一个困扰许久的问题, 加载webView 的时候, 如果突然断网或者信号不好的时候会出现白屏现象. 

    1.  如果断网, 加载webView, 走代理 didFailLoadWith 方法比较简单, 直接在 代理方法加载一个按钮点击重试或者重载一下就可以了. 这边不在展开介绍了.  

    2. 如果走 webViewDidFinishLoad 代理方法, 这个就比较棘手了. 下面我着重介绍一下.

    思路一: 加载中断网可能会出现白屏, 也可能不出现(加载完成, 并web界面渲染完毕).   开始我从请求参数开始着手, 看是不是因为断网了, 参数跟正常请求参数不一致来判断是否白屏, 但是在webViewDidFinishLoad方法里面获取的 webView.request 的各项参数(url, body, value等等), 正常加载, 异常加载都一样. 没有区别.  无法判断是否是白屏, 只能在界面上看到是否为白屏. 这个思路 not workable . 

    思路二: 既然我从 加载webview的方法中无法判断, 是否白屏, 那么就反过来考虑下手. 从H5界面白屏现象分析. 正常界面, H5界面有内容, 白屏无内容. 那么我判断当前界面是否为白屏, 就可以直接取我 "加载完成" 的H5界面 body有无内容不就可以了吗? 如果 H5的body节点内容为 "" 这个就是白屏, body 不为空. 就不是白屏(当然除外极少个别H5界面, 如全图片的web界面, body本身不纯在的不适用, 绝大部分的H5界面是有body内容的).  这样去尝试了一下,可以判断,解决了我的问题. 方法如下: let body = webView.stringByEvaluatingJavaScript(from: "document.body.innerText") ?? "" as String   

    相关文章

      网友评论

        本文标题:IOS webView断网白屏页判断

        本文链接:https://www.haomeiwen.com/subject/nljznttx.html