2017年8月29日
iOS WKWebView 报错 kCFRunLoopCommonModes
记录一下使用WKWebView中遇到的一个低级错误。在APP内使用WKWebView封装了一个简单的BrowserViewController,把BrowserViewController作为其他控制器的子控制器的时候一切正常,但是单独把BrowserViewController push出来的时候就会报下面的错误。排查半天原来是一个非常低级的错误。
“invalid mode 'kCFRunLoopCommonModes' provided to CFRunLoopRunSpecific - break on _CFRunLoopError_RunCalledWithInvalidMode to debug. This message will only appear once per execution.
libc++abi.dylib: terminate_handler unexpectedly threw an exception”
WKWebView的代理方法
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
中,必须调用decisionHandler,否则就会出错。
比如:
- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
decisionHandler(WKNavigationActionPolicyAllow);
}