使用一个导航控制器加载一个WKWebView , 同时这个webview 需要原生传一些参数,此时锁屏,再打开,滑动一下webview ,会出现白屏的问题,原因如下
滑动webview 的时候,会触发如下的一个事件,导致webview在reload的时候没有重新获取到app传的参数,加载界面空白
navigationAction.navigationType = WKNavigationTypeReload
解决方案如下
// 监听用户导航行为
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
// 可以在这个地方处理用户导航行为
if (navigationAction.navigationType == WKNavigationTypeReload && _didBecomeActive) {
decisionHandler(WKNavigationActionPolicyCancel);
} else {
decisionHandler(WKNavigationActionPolicyAllow);
}
_didBecomeActive = NO;
}