IOS UIWebview webkit和decisionpolicyfornavigationaction错误

问题描述:

iPad编程,IOS6。 得到它加载使用IOS UIWebview webkit和decisionpolicyfornavigationaction错误

[helpView loadHTMLString:htmlString baseURL:baseURL]; 

成功加载捆绑的HTML文件,并在HTML文件中有一个 <a href="didTap://touchme">here</a>启用和工艺的超链接的触摸一个(UIWebView *) helpview对象。

一切运作良好,但如果我再发动的NSURLRequest获得外部网站,然后再回到原来的HTML文件,在HTML文件中的锚标签无法正常工作,我得到这个错误:

WebKit discarded an uncaught exception in the webView:decidePolicyForNavigationAction:request:frame:decisionListener: delegate: setObjectForKey: key cannot be nil

我不认为IOS编程使用webkit,那么为什么会出现此错误?以及如何恢复锚标签?

有趣的是,如果我释放并重新创建UIWebView对象而不是使用IBOutlet并将其保留在整个范围内,它都可以正常工作。但是,UIWebview的其他问题仍然存在,我无法弄清楚。

你在应用程序的某个地方使用了自定义的NSURLProtocol吗?它甚至可能不会在使用UIWebView的相同代码中注册,也可能在调用loadRequest后注册:但是,由于请求异步加载(我相信),它仍可能会发生干扰。在代码中的某个地方搜索[NSURLProtocol registerClass,禁用所有这些代码,然后查看是否可以解决问题。如果是这样,那么解决方案可能会修复自定义协议代码中的异常。

我今天在iOS 10.3上看到这个错误。和你一样 - 我使用的是UIWebView,而不是WKWebView。在我的情况下,这个问题是由加载的网址末尾的空格造成的。