我有一个应用程序依赖于UIWebViews的一些屏幕,但从iOS 8开始,我开始看到偶尔抛出以下异常:
WebKit在webView中丢弃了未捕获的异常:willRemoveScrollingLayer:withContentsLayer:forNode:delegate:< NSInvalidArgumentException> - [WebActionDisablingCALayerDelegate setBeingRemoved:]:发送到实例的无法识别的选择器(...)
这通常是在点击webview上的按钮或链接时发生的(没有在Objective-C端进行任何其他操作),之后webview中的大部分功能都将被破坏(链接无法点击,等)。
至少有一个问题涉及此错误消息,但尚无定论答案。
有没有人遇到过这个问题,弄清楚出了什么问题/是什么原因造成的? 它似乎完全依赖于HTML内容,这意味着引发此异常的事实是iOS 8错误。
答案 0 :(得分:3)
原来这个错误是由我在HTML中的iframe上使用以下CSS属性引起的:
-webkit-overflow-scrolling: touch;
删除它(我们现在正在寻找合适的替代方案),UIWebView不再崩溃。
答案 1 :(得分:3)
您可以使用WKWebView代替UIWebView 。 (它最初包含在iOS 8中)。我已经尝试过,似乎它没有得到这个错误。
如果你的目标是iOS 8之前的版本,你可以实现后备程序来加载UIWebView或WKWebView,here you are一个开箱即用的实现
答案 2 :(得分:1)
我将-webkit-transform: translateZ(0px)
放在我的body
元素上。似乎可以解决问题,我可以保留-webkit-overflow-scrolling
样式。
答案 3 :(得分:0)
我更改了填充:0 16px 0 26%;保证金左:25%;它适用于我