在父类BaseWKWebVC实现decidePolicyForNavigationAction
image.png
在子类SubWKWebVC重写decidePolicyForNavigationAction
image.png
另外根据需求生成了子类Sub1WKWebVC:SubWKWebVC
结果在生成的Sub1WKWebVC对象Sub1执行decidePolicyForNavigationAction时,会产生无限循环调用Sub1对象decidePolicyForNavigationAction方法,导致报错
该报错产生的条件非常离奇,先是生成SubWKWebVC对象Sub加载了网页地址url1,关闭后,再用Sub1WKWebVC对象Sub1打开改网址url1,才会报错;如果一直使用Sub或者Sub1打开url1,则完全没问题;
为了侧面验证该问题,我使用了类似的代理方法测试,同样的执行条件(先打开Sub,再打开Sub1)依然正常,所以我猜测是苹果代理的Bug,具体原因也不明;
- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler
最后的解决办法我使用了上述代理方法来执行我的业务代码(主要是判断一些值),没有报错。